Показать сообщение отдельно
  #17  
Старый 25.05.2011, 17:35
TotKtoNado TotKtoNado вне форума
Начинающий
 
Регистрация: 28.12.2010
Адрес: Сургут
Сообщения: 103
Версия Delphi: 2010
Репутация: -3238
По умолчанию

Цитата:
Сообщение от Assistant
Код:
procedure FilteredStringGrid(Grid: TStringGrid; filter: string; num_col_for_find: integer);
var
  i,n: integer;
  cnt: integer;
begin
  cnt := 0;

  for i := 0 to Grid.RowCount-1 do
  begin
    if (Grid.Cells[num_col_for_find,i] = filter) then
    begin
      for n := 0 to Grid.ColCount-1 do
        Grid.Cells[n,cnt] := Grid.Cells[n,i];
        
      Inc(cnt);
    end;
  end;

  Grid.RowCount := cnt;
end;

использовать так (для вашего случая):
Код:
FilteredStringGrid(StringGrid1,ComboBox1.Text,0);

P.S. только второй раз фильтрации уже не будет, ибо в гриде уже не будет данных, я бы посоветовал использовать второй, невидимый грид, или перед каждой фильтрацией заного загружать данные.
а num_col_for_find что такое
какие данные?
Ответить с цитированием