AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Procedure als Event definieren? Wenn ja, wie?
Thema durchsuchen
Ansicht
Themen-Optionen

Procedure als Event definieren? Wenn ja, wie?

Ein Thema von stho · begonnen am 8. Apr 2010 · letzter Beitrag vom 21. Apr 2010
Antwort Antwort
blauweiss

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

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

  Alt 8. Apr 2010, 22: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
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:18 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz