Показать сообщение отдельно
  #6  
Старый 25.05.2011, 16:36
Assistant Assistant вне форума
Продвинутый
 
Регистрация: 20.02.2011
Адрес: там где правят идиоты
Сообщения: 603
Версия Delphi: 7
Репутация: выкл
По умолчанию

Код:
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. только второй раз фильтрации уже не будет, ибо в гриде уже не будет данных, я бы посоветовал использовать второй, невидимый грид, или перед каждой фильтрацией заного загружать данные.
__________________
взялся из неоткуда, ничего не прошу, помогаю просто так
ICQ: 593977748 - стучать в случае КРАЙНЕЙ необходимости, ну, или если вы со Ставрополя
Ответить с цитированием