Hinzufügen von Ereignissen zu einem Tlist.


Hinzufügen eines prozeduralen Typs auf TList oder TStringList
Hier ist der Code, den ich verwendet, um dieses Ziel zu erreichen:
Einheit Unit1;
Schnittstelle
verwendet
Windows, Nachrichten, SysUtils, Klassen, Graphics, Steuerelemente, Formulare, Dialoge,
StdCtrls;
Typ
TForm1 = class(TForm)
ListBox1: TListBox;
Button1: TButton;
Prozedur Button1Click(Sender: TObject);
Prozedur ListBox1Click(Sender: TObject);
Private
{Private Deklarationen}
öffentliche
{Public Deklarationen}
Ende;
var
Form1: TForm1;
Umsetzung
{$R *. DFM}
Typ
TEventObject = Klasse
geschützt
Ändern Sie hier (für Beginers nur)
FEvent: TNotifyEvent;
veröffentlicht
Ändern Sie hier (für Beginers nur)
Eigenschaft Ereignis: TNotifyEvent lesen FEvent schreiben FEvent;

Ende;
Die Liste hinzu
Prozedur TForm1.Button1Click(Sender: TObject);
Var A: TEventObject;
beginnen
A: = TEventObject.Create;
A.Event: = Button1Click; oder jede TNotifyEvent
ListBox1.Items.AddObject ('Button1Click', A);
Ende;
Das Ereignis aufrufen
Prozedur TForm1.ListBox1Click(Sender: TObject);
beginnen
Wenn dann ListBox1.ItemIndex <>-1
TEventObject(ListBox1.Items.Objects[ListBox1.ItemIndex]). Event(Self);
Ende;
Ende.
(Für Beginers nur) Wenn Sie diesen Code an welchen anderen Verfahren und/oder prozeduralen Typen Addapt möchten, ändern Sie einfach die Abschnitte, die Status ändern hier. Wie funktioniert es, ganz einfach Freund ein Objekt erstellt wird, deren einziger Zweck ist, die Veranstaltung bis aufgerufen zu halten. Objekte werden in diesem Fall nicht überall freigegeben, da war es nur eine Demostration im wirklichen Leben, musst du die Objekte irgendwo (OnClose, OnCloseQuery eines Formulars oder eines Destruktors) frei
(Für Criticist) In meinem Fall wollte ich nur eine Liste der Ereignisse einer festen Form, ich weiß, Sie werden schreien, dass RTTI könnte eine bessere Lösung sein, vielleicht es ist aber ich auch nicht wie RTTI funktioniert weiß, so dass ich auf ein Objekt Zünglein an der Veranstaltung nahmen Zuflucht, und da es perfekt gültig ist, vielleicht zusätzliche Speicher Woth ist es.









Hinzufügen von Ereignissen zu einem Tlist.


Hinzufügen von Ereignissen zu einem Tlist. : Mehreren tausend Tipps, um Ihr Leben einfacher machen.


Hinzufügen eines prozeduralen Typs auf TList oder TStringList
Hier ist der Code, den ich verwendet, um dieses Ziel zu erreichen:
Einheit Unit1;
Schnittstelle
verwendet
Windows, Nachrichten, SysUtils, Klassen, Graphics, Steuerelemente, Formulare, Dialoge,
StdCtrls;
Typ
TForm1 = class(TForm)
ListBox1: TListBox;
Button1: TButton;
Prozedur Button1Click(Sender: TObject);
Prozedur ListBox1Click(Sender: TObject);
Private
{Private Deklarationen}
öffentliche
{Public Deklarationen}
Ende;
var
Form1: TForm1;
Umsetzung
{$R *. DFM}
Typ
TEventObject = Klasse
geschützt
Ändern Sie hier (für Beginers nur)
FEvent: TNotifyEvent;
veröffentlicht
Ändern Sie hier (für Beginers nur)
Eigenschaft Ereignis: TNotifyEvent lesen FEvent schreiben FEvent;

Ende;
Die Liste hinzu
Prozedur TForm1.Button1Click(Sender: TObject);
Var A: TEventObject;
beginnen
A: = TEventObject.Create;
A.Event: = Button1Click; oder jede TNotifyEvent
ListBox1.Items.AddObject ('Button1Click', A);
Ende;
Das Ereignis aufrufen
Prozedur TForm1.ListBox1Click(Sender: TObject);
beginnen
Wenn dann ListBox1.ItemIndex <>-1
TEventObject(ListBox1.Items.Objects[ListBox1.ItemIndex]). Event(Self);
Ende;
Ende.
(Für Beginers nur) Wenn Sie diesen Code an welchen anderen Verfahren und/oder prozeduralen Typen Addapt möchten, ändern Sie einfach die Abschnitte, die Status ändern hier. Wie funktioniert es, ganz einfach Freund ein Objekt erstellt wird, deren einziger Zweck ist, die Veranstaltung bis aufgerufen zu halten. Objekte werden in diesem Fall nicht überall freigegeben, da war es nur eine Demostration im wirklichen Leben, musst du die Objekte irgendwo (OnClose, OnCloseQuery eines Formulars oder eines Destruktors) frei
(Für Criticist) In meinem Fall wollte ich nur eine Liste der Ereignisse einer festen Form, ich weiß, Sie werden schreien, dass RTTI könnte eine bessere Lösung sein, vielleicht es ist aber ich auch nicht wie RTTI funktioniert weiß, so dass ich auf ein Objekt Zünglein an der Veranstaltung nahmen Zuflucht, und da es perfekt gültig ist, vielleicht zusätzliche Speicher Woth ist es.


Hinzufügen von Ereignissen zu einem Tlist.

Hinzufügen von Ereignissen zu einem Tlist. : Mehreren tausend Tipps, um Ihr Leben einfacher machen.
Hinzufügen von Ereignissen zu einem Tlist.
Wiezutun
Freunden empfehlen
  • gplus
  • pinterest

Kommentar

Einen Kommentar hinterlassen

Wertung