
Zitat von
Fritz01:
...Sehe ich das richtig? ....
Nein, da hast du einen Verständnisfehler:
zuerst wird die Schleife durchlaufen,
danach werden die Einträge in der ListBox (oder StringList) mit einem Schlag gelöscht.

Zitat von
Fritz01:
...Ansonsten läuft das Teil super und völlig fehlerfrei. ...
und wie ist das mit dem nicht gefundenen Index für PLZ? (siehe #24)
Das hier
if Table.IndexDefs.Items[I].Fields = sName
'ermittelt' den ersten Index, in dem das Feld sName vorhanden ist (in deinem Beispiel wäre das PLZ_idx) und somit ist die Bedingung wahr. Allerdings versuchst du dann die Tabelle auf den Index mit dem
Feldnamen zu indizieren...und das kann ja nicht funktionieren

Aber so:
Delphi-Quellcode:
procedure TForm1.GridTitleClick(Column: TColumn);
{...vorhandener Code}
if bVorhanden then
begin
Table.IndexName := Table.IndexDefs.Items[I].Name;
end
{...}
end;
Was bewirkt das? ein Index mit dem Feld PLZ wurde gefunden und dessen Name (hier PLZ_idx) wird nun verwendet, um die Tabelle hierauf zu indizieren..