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

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (0)  (0)

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;

 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?