Dicas - Consultar a lista de eventos que possuem tratadores de eventos anexados

Veja nesta dica, como listar os eventos de um formulário, que possuem código anexado.

Consultar a lista de eventos que possuem tratadores de eventos anexados

 

No Delphi para Win32, um evento de um objeto deve ser tratado por um método (tratador de evento). Aqui está como consultar a lista de eventos de um objeto, que possuem tratadores de evento anexados.

Utilize o código a seguir no evento OnCreate de um formulário. Insira dois ListBox e execute. O ListBox1 possui o nome de todos os eventos do objeto Form1, enquanto o ListBox2 possui apenas aqueles que têm um tratador de evento anexado.

 

uses Typinfo;

 

procedure TForm1.FormCreate(Sender: TObject) ;

var

  Count, Loop: Integer;

  List: PPropList;

  method : TMethod;

begin

  Count := GetPropList(TypeInfo(TForm1), tkMethods, nil) ;

  GetMem(List, Count * SizeOf(PPropInfo)) ;

  try

GetPropList(TypeInfo(TForm1), tkMethods, List) ;

for Loop := 0 to Pred(Count) do

begin

Listbox1.Items.Add(List[Loop]^.Name) ;

method := GetMethodProp(Form1, List[Loop]^.Name) ;

if Assigned(method.Code) and Assigned(method.Data) then

begin

ListBox2.Items.Add(List[Loop]^.Name) ;

end;

end;

  finally

FreeMem(List, Count * SizeOf(PPropInfo))

  end;

end;

Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados