Eu não conheço nenhuma função ou procedimento que retorne esses dados. Mas você 
pode armazenar em uma TStringGrid as propriedades padrão de cada componente e 
fazer uma função boleana que retorne se para aquele componente existe ou não a 
propriedade na lista de propriedades.

Grid
Classe  |    Prop1        |    Prop2                |Prop3
TButton |    OnClick    |    OnMouseMove    | Enabled
TEdit     | OnChange   |    OnEnter             | Enabled


function TForm1.hasProperty(Classe, Propriedade: String): Boolean;
var
   Linha, Coluna: Integer;
begin
Result:=False;
For Linha:=1 to sg1.RowCount-1 do
   begin
      if sg1.Cells[0, Linha]=Classe then
         begin
            for Coluna:=1 to sg1.ColCount-1 do
               begin
                  if sg1.Cells[Coluna, Linha]=Propriedade then
                     begin
                        Result:=True;
                        Break;
                     end;
               end;
         end;
   end;
end;

Aí para chamar:

if hasProperty(Classe, Propriedade) then
   messagedlg('A Propriedade '+Propriedade+' existe em 
'+Classe,mtinformation,[mbok],0)
else
   messagedlg('A Propriedade '+Propriedade+' NÃO existe em 
'+Classe,mterror,[mbok],0)



Não é eficiente mas ajuda um pouco já.


Alisson Ricardo VIol Gazda


  ----- Original Message ----- 
  From: Carlos Eduardo L. de Souza 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Thursday, August 25, 2005 2:41 PM
  Subject: [delphi-br] componente tem propriedade?


  Tarde!
  Alguém sabe:

  Eu preciso descobrir se um determinado componente tem uma propriedade
  ou um método ou evento.
  Mais ou menos assim:
      for i:= 0 to ComponentCount - 1 do
      begin
        if Components[i].hasProperty('Enabled') then //isto não existe...
          Components[i].Enabled := False; //essa linha também vai dar
  erro sem um cast...
        //preciso também saber:
        if Components[i].hasEvent('OnClick') then
          Components[i].OnClick := OnClickPersonalizado;
      end
  Qualquer idéia é bem vinda...
  tks
  Eduardo




  -- 
  <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

  Para ver as mensagens antigas, acesse:
  http://br.groups.yahoo.com/group/delphi-br/messages

  Para falar com o moderador, envie um e-mail para:
  [EMAIL PROTECTED] ou [EMAIL PROTECTED]



        Yahoo! Grupos, um serviço oferecido por: 
          


------------------------------------------------------------------------------
  Links do Yahoo! Grupos

    a.. Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/
      
    b.. Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]
      
    c.. O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço 
do Yahoo!. 



[As partes desta mensagem que não continham texto foram removidas]





-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

Para ver as mensagens antigas, acesse:
 http://br.groups.yahoo.com/group/delphi-br/messages

Para falar com o moderador, envie um e-mail para:
 [EMAIL PROTECTED] ou [EMAIL PROTECTED]
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 



Responder a