Also dein Code aus der #19 sollte so eigentlich funktionieren.
An deinem gezeigten Beispielcode dürfte es noch nichtmal ein Problem geben, selbst wenn du "ausversehn" der Dummy-Objekt in deiner Initprozedur wieder freigibst.
Zitat:
Hierfür kannst du notfalls auch eine eigene Klasse anlegen, davon ein Objekt erstellen und die Methode dieses Objektes nun dem Event zuweisen.
Delphi-Quellcode:
// Hierfür kannst du notfalls auch eine eigene Klasse anlegen,
type
TDummeKlasse = Class(TObject)
Procedure BeforeInsert(DataSet: TDataSet);
End;
procedure TDummeKlasse.BeforeInsert(DataSet: TDataSet);
begin
Showmessage(Command.SQL.Text);
end;
---
function GlobalInit : Boolean;
var
X : TDummeKlasse;
begin
result := false;
// davon ein Objekt erstellen
X := TDummeKlasse.create;
[...]
// und die Methode dieses Objektes nun dem Event zuweisen.
command.BeforeInsert := X.BeforeInsert;
[...]
end;
// X besser globaler deklarieren
// und erst freigeben, wenn "command" gelöscht wurde
// oder wenn TDummeKlasse.BeforeInsert nicht mehr benötigt wird.
Wie gesagt, so ist es eigentlich richtig,
also muß der Fehler, warum es immernoch nicht geht, irgendwo anders sein.
Ein Therapeut entspricht 1024 Gigapeut.