Du solltest erstmal bedenken, daß der Parameter "Field" nicht immer ein Feld enthalten muß und auch mal nil sein kann.
- erstmal sagt dir die Exception-Message, welche du uns vorenthälst, ganz bestimmt was von "Zugriffsverletzung bei Adresse $000000xx" und schon weiß man, daß da irgendwo ein NIL im Spiel ist
- und wenn man den Debugger verwenden würde, dann würde man auch sehen, daß dieses Property bestimmt NIL sein wird
Aber warum verwendest du nicht die Master-Detail-Funktionen des ClientDataSets, und lässt das automatisch synchronisieren?
- IndexFieldNames
- MasterFields
- MasterSource
Oder man verwendet zum Ausrichten DataSet.OnAfterScroll.
Sicher, daß du Locate richtig verwendest, oder täuscht das nur und du hast eine etwas "eigenartige" Tabellenstruktur? (welche natprlich auch geheim ist)
PS: Statt
Application.Terminate;
kommt man mit
{Self}.Close;
oder
Application.MainForm.Close;
besser, denn damit verbaut man sich die Nutzung von TForm.OnCloseQuery nicht.
Das (erfolgreiche) Schließen der Hauptform beendet die Application, aber so kann man prüfen, ob wirklich geschlossen werden darf. z.B. wenn noch nicht gepseichert wurde.