Como saber se componente tem evento
30/07/2008
0
Eu tenho uma dúvida, que eu pesquisei, mas não consegui achar em lugar algum.
Eu preciso fazer uma varredura em um form para executar o evento onchange de vários DBEdit´s. Porém nem todos os DBEdit´s tem código nesse evento. Eu preciso descobrir como eu posso saber se o componente tem código no evento ou não.
Segue o código:
var Comp: TComponent; begin for Comp in Self do if Comp is TDBEdit then TDBEdit(Comp).OnChange(TDBEdit(Comp)); end;
Obrigado a todos
Daniel Grillo
Posts
30/07/2008
Daniel Grillo
Para saber se um componente tem uma propriedade em runtime, utiliza-se a função IsPublishedProp. Gostaria de saber se há alguma função similar para eventos.
30/07/2008
Daniel Grillo
Segue o link onde eu achei:
[url]http://delphi.about.com/od/adptips2005/qt/listhandlers.htm[/url]
E meu código ficou assim:
uses TypInfo; var Comp: TComponent; Method: TMethod; begin for Comp in Self do if Comp is TDBEdit then begin method := GetMethodProp(TDBEdit(Comp), ´OnChange´) ; if Assigned(method.Code) and Assigned(method.Data) then TDBEdit(Comp).OnChange(TDBEdit(Comp)); end; end;
30/07/2008
Rodc
var Comp: TComponent; begin for Comp in Self do if Comp is TDBEdit then if Assigned(TDBEdit(Comp).OnChange) then TDBEdit(Comp).OnChange(TDBEdit(Comp)); end;
30/07/2008
Daniel Grillo
var Comp: TComponent; begin for Comp in Self do if Comp is TDBEdit then if Assigned(TDBEdit(Comp).OnChange) then TDBEdit(Comp).OnChange(TDBEdit(Comp)); end;
Pior que funciona!!
Por que você não postou antes?!
Bom, fica ai registrado os dois métodos, mas o do rodc é mais fácil.
Obrigado
30/07/2008
Rodc
É que eu não tinha entrado no forum antes... rsss...
Abraços
04/08/2008
Joaohueder
é que quero fazer uma rotina de erros e se ocorrer erros dentro de um evento, mostrar qual evento esta.
Obrigado.
Clique aqui para fazer login e interagir na Comunidade :)