Zitat von
himitsu:
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.
Die Instanz x der Dummyklasse muß nicht unbedingt erstellt sein, da auf keine members zugegriffen wird.
Also die Zeile
X := TDummeKlasse.create;
braucht es nicht. Dann muß man sich auch nicht um die Freigabe kümmern.
blauweiss