Mega Code Archive

 
Categories / Delphi / VCL
 

How to seek for a value in a StringGrid and select the right row

Title: How to seek for a value in a StringGrid and select the right row function SeekRecord(Grid: TStringGrid; ColOrder: array of Integer; StrList: array of string): Boolean; var I, J: Integer; begin Result := False; for I := 1 to Grid.RowCount - 1 do begin for J := Low(ColOrder) to High(ColOrder) do begin if (Grid.Cells[ColOrder[J], I] = StrList[J]) then Result := True else Result := False; if Result = False then Break; end; if Result = True then Break; end; if Result = True then Grid.Row := I else ShowMessage('Datensatz nicht gefunden!' + #13#13 + 'Record not Found!'); end; //Example procedure TForm1.Button1Click(Sender: TObject); begin //Suche Zeile nach Column 0 mit Suchbegriff SeekRecord(Grid, [0], ['Suchbegriff']); //Suche Zeile nach Column 0 und 1 mit Suchbegriffen 1 und 2 SeekRecord(Grid, [0, 1], ['Suchbegriff1', 'Suchbegriff2']); //Suche Zeile nach Column 1, 5 und 2 mit Suchbegriffen 1, 2 und 3 SeekRecord(Grid, [1, 5, 2], ['Suchbegriff1', 'Suchbegriff2', 'Suchbegriff3']); //usw. end;