Добавить процедурный тип в TListDelphi , Компоненты и Классы , СпискиДобавить процедурный тип в TList
Оформил: DeeCo unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) ListBox1: TListBox; Button1: TButton; procedure Button1Click(Sender: TObject); procedure ListBox1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} type TEventObject = class protected FEvent: TNotifyEvent; published property Event: TNotifyEvent read FEvent write FEvent; end; // Zur Liste hinzufugen // To add to the list procedure TForm1.Button1Click(Sender: TObject); var A: TEventObject; begin A := TEventObject.Create; A.Event := Button1Click; // or any TNotifyEvent ListBox1.Items.AddObject('Button1Click', A); end; // Den Event aufrufen // To call the event procedure TForm1.ListBox1Click(Sender: TObject); begin if ListBox1.ItemIndex <> -1 then TEventObject(ListBox1.Items.Objects[ListBox1.ItemIndex]).Event(Self); end; end. // 2. Losung // 2nd solution {....} private FList: TList; end; {....} procedure TForm1.FormCreate(Sender: TObject); begin FList := TList.Create; end; procedure TForm1.FormDestroy(Sender: TObject); begin FList.Free; end; procedure TForm1.Button1Click(Sender: TObject); begin ShowMessage('event'); end; procedure TForm1.Button2Click(Sender: TObject); var P: TNotifyEvent; begin // Get pointer to event // Pointer des Events holen P := Button1Click; // Add Pointer to List // Pointer zur Liste hinzufugen FList.Add(@P); end; procedure TForm1.Button3Click(Sender: TObject); var P: TNotifyEvent; begin // Get first event from list // Den ersten Event aus der Liste holen @P := FList[0]; // Execute event // Event ausfuhren P(Sender); end; Статья Добавить процедурный тип в TList раздела Компоненты и Классы Списки может быть полезна для разработчиков на delphi & pascal. Комментарии и вопросыМатериалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |