Hallo Günter,
der Fehler steckt in der Setter-Methode. Durch die direkte Zuweisung überschreibst du die im Constructor initialisierte Referenz auf das TStringList-Objekt mit einem neuen Zeiger, was zunächst nur zu einem Speicherleck führt. Gleichzeitig übernimmt aber nun das
Query-Objekt die Verantwortung für die übergebene Liste, die du vermutlich nach der Zuweisung zur
SQL-Eigenschaft freigibst. Damit ist dann der Zeiger innerhalb des
Query-Objekts ungültig!
Besser ist es, im Setter den
Inhalt der Liste zu kopieren:
FSQL.Assign(Value);
Noch ein Vorschlag: ändere den Datentyp von FSQL ab in
TStrings. Dadurch kannst du später beliebige TStrings-Nachfolger (z.B. TMemo.Lines) zuweisen. Im Constructor von TGSQuery muß natürlich weiterhin ein TStringList-Objekt instanziiert werden, da TStrings abstrakte Methoden enthält.
Gruß Hawkeye