ФИЛЬТРАЦИЯ В 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

Реклама
Новое
Реклама