Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#7

Re: Stringgrid zu dem entsprechenen Anfangsbuchstaben spring

  Alt 16. Nov 2006, 18:28
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
  Mit Zitat antworten Zitat