ФИЛЬТРАЦИЯ В STRINGGRID DELPHI
StringGrid - это компонент Delphi, который позволяет нам отображать данные в виде таблицы. Очень часто бывает нужна возможность фильтровать эти таблицы. Для этого есть несколько способов.
Один из способов - это использование стандартного свойства StringGrid - Options. Установка опции goEditing в False и опции goAlwaysShowEditor в True, позволит отображать данные "как есть", то есть без возможности редактирования, но с поиском и фильтрацией. Можно использовать стандартный метод StringGrid поиска - OnSearchButtonClick, чтобы фильтровать данные в таблице.
procedure TForm1.SearchButtonClick(Sender: TObject);var i, j: Integer; SearchText: string;begin SearchText := SearchEdit.Text; if Length(SearchText) > 0 then begin for i := 0 to StringGrid1.RowCount - 1 do begin for j := 0 to StringGrid1.ColCount - 1 do begin if (Pos(UpperCase(SearchText), UpperCase(StringGrid1.Cells[j,i])) > 0) then begin StringGrid1.Row:=i; StringGrid1.Col:=j; Exit; end; end; end; end;end;
Если есть необходимость создать более сложный фильтр, то можно использовать TStringList для хранения данных таблицы, а затем отредактировать этот список с помощью методов TStringList. Следующий код привиден для примера и показывает, как можно отфильтровать таблицу с помощью TStringList.
procedure TForm1.FilterButtonClick(Sender: TObject);var i, j: Integer; FilterValue: string; FilterColumn: Integer; TempList: TStringList;begin FilterValue := FilterEdit.Text; FilterColumn := FilterComboBox.ItemIndex; TempList := TStringList.Create; try for i := 0 to StringGrid1.RowCount - 1 do begin TempList.Add(StringGrid1.Rows[i].CommaText); end; for i := TempList.Count - 1 downto 0 do begin if Pos(FilterValue, TempList[i]) <> FilterColumn * 2 + 1 then TempList.Delete(i); end; StringGrid1.RowCount := TempList.Count; for i := 0 to TempList.Count - 1 do begin StringGrid1.Rows[i].CommaText := TempList[i]; end; finally TempList.Free; end;end;
15 TStringGrid Delphi
[Delphi Tutorial] - 델파이 무료강의 TStringGrid component(Basic)
CxGriD in delphi
Настройка драйвера устройства Delphi DS150e, Autocom CDP+
Walking Star in Delphi's Stringgrid
Delphi, StringGrid vs TMS AdvStringGrid Mouse Move
Delphi 20 StringGrid / 10 Creation Dynamic
Using String grids in Delphi
STRINGGRID DELPHI PART3
Delphi Click a cell on Stringgrid to Toggle its Value