Hallo,
hier noch ein anderer Ansatz: Wenn die Namen in ihrer Grid-Spalte bereits sortiert sind, dann kann man auf die Methode TStrings.Find zurückgreifen:
Delphi-Quellcode:
procedure LocateRow(sg: TStringGrid; iCol: Integer; const sText: String);
var
iRow: Integer;
begin
with TStringList.Create do
try
Assign(sg.Cols[iCol]);
Sorted := True;
for iRow := 1 to sg.FixedRows do
Delete(0);
Find(sText, iRow);
iRow := iRow + sg.FixedRows;
sg.Row := iRow - iRow div sg.RowCount; // restrict row index
sg.Col := iCol;
finally
Free;
end;
end;
const
NAME_COL = 0;
procedure TDemoForm.EditChange(Sender: TObject);
begin
with Sender as TEdit do
LocateRow(StringGrid, NAME_COL, Text);
end;
Freundliche Grüße