Ein Eigenes Event bzw. Ereigniss erzeugen !?
-
hallo, wie kann man in einer eigenen klasse ein Ereignis deklarieren?
und wie kann man diesen dann aufrufen?In VB ist das relativ einfach, nur in c++ weiß ich es leider nicht.
dachte, dass ich dann im "Hauptquellcode" des gesamten Programmes in etwa sowas schreiben kann:
void __fastcall cl_ampel1::rot(TObject *Sender) { Label1->Caption = "rot1"; } void __fastcall cl_ampel2::rot(TObject *Sender) { Label2->Caption = "rot2"; }nur ich weiß nicht wie ich das deklarieren soll. in meinem Klassenheader hatte ich folgendes Probiert:
void rot();was dann aber natürlich eine Funktion in der klassen cpp ausführt und kein ereigniss wo drauf ich im Hauptprogramm zu greifen kann.
Komme da mit dem Ereignis nun nicht zurecht.
Wäre nett, wenn mir auch hier einer Helfen könnte.
DAnke,
Gruß
Thorsten
-
Was hat die Caption mit einem Ereigniss zu tun
Willst du ein eigenes Ereignis definieren?
Willst du eine eigene Routine für ein bereits bestehendes Ereignis schreiben?
Denke du solltest erstmal mit den bestehenden Ereignissen klar kommen (objektinspektor -> Ereignisse -> dort beim gewünschten Doppelklick)
-
nein, das Label hat nur infern damit zutun, damit ich auch sehe, dass das Ereigniss ausgelöst wurde.
cl_ampel1 ist das Objekt meiner Klasse, welches ich vorher instanziert habe.
nun möchte ich in meiner Klasse eine Zeile schreiben, die das Ereigniss "rot" auslösen soll.
Ich weiß nur leider nicht, wie ich dieses Deklariere und wie ich es dann auslöse.
Im Hauptprogramm müsste ich dann sowas stehen haben, wie in meinem ersten Beitrag, damit ich für jedes Objekt eine andere Routine zuweisen kann, was passieren soll, wenn das Ereigniss "rot" ausgelöst wurde.gruß
thorsten
-
Deine Fragenstellung ist schrecklich.
Hab mal ein Beispiel zusammengewurschtelt:
Header:class Klasse { public: void __fastcall Funktion(); void (__closure *ExterneFunktion)();// <---- }; class TForm1 : public TForm { __published: // Von der IDE verwaltete Komponenten TButton *Button1; void __fastcall Button1Click(TObject *Sender); private: // Anwender-Deklarationen public: // Anwender-Deklarationen __fastcall TForm1(TComponent* Owner); void Blubb(); };Unit:
void __fastcall Klasse::Funktion() { ExterneFunktion(); } void TForm1::Blubb() { ShowMessage("Ereignis aufgerufen"); } void __fastcall TForm1::Button1Click(TObject *Sender) { Klasse K; K.ExterneFunktion = Blubb; K.Funktion(); }Hoffe, es wird klar
-
sauber, so funktioniert es einwandfrei. sollte man mal in die faq einbinden

gruß thorsten und vielen dank!
-
ThorstenSteinberg schrieb:
sauber, so funktioniert es einwandfrei. sollte man mal in die faq einbinden

ist es doch schon lange.. ->Komponenten entwickeln
mfg
BigNeal
-
Das ist doch ein ganz normaler Mett-Hoden-Aufruf?!
-
Man muss bloß die richtigen Fragen stellen bzw. richtig formulieren
