Einzelnen Beitrag anzeigen

blauweiss

Registriert seit: 19. Jun 2007
142 Beiträge
 
#25

Re: Procedure als Event definieren? Wenn ja, wie?

  Alt 8. Apr 2010, 23:29
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
  Mit Zitat antworten Zitat