Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Saber si existe propiedad en un componente (https://www.clubdelphi.com/foros/showthread.php?t=38046)

genius 30-11-2006 13:49:47

Saber si existe propiedad en un componente
 
Hola amigos del Club.. Espero me ayuden .Alguien sabe la forma de saber si un componente "X" tiene "X" propiedad . por ejemplo

El sgte codigo Screen.ActiveForm.Components[i]
es un recorrido como veran, no hay ningun secreto, pero a la vez necesito saber si la misma posee por decir la propiedad "Text" porque poseo varios controles diferentes en mi formulario .para que yo pueda determinar los valores correspondientes a pasarlo..

Desde ya muchas gracias.

dec 30-11-2006 14:37:28

Hola,

Código Delphi [-]
uses
  TypInfo;

procedure TForm1.Button1Click(Sender: TObject);
begin

  // Utilizando instancias de un objeto
  if TypInfo.IsPublishedProp(Label1, 'Caption') then
    ShowMessage('Label1 cuenta con una propiedad Caption')
  else
    ShowMessage('Label1 NO cuenta con una propiedad Caption');

  // Utilizando el tipo de una determinada clase
  if TypInfo.IsPublishedProp(TLabel, 'Caption') then
    ShowMessage('TLabel cuenta con una propiedad Caption')
  else
    ShowMessage('TLabel NO cuenta con una propiedad Caption');

end;

genius 30-11-2006 14:58:39

Resuelto
 
Problema resuelto.. !!
Gracias.. David..

En mi caso seria asi . y lo comparto _ CMCtrlAsociado contiene el name de x control
if TypInfo.IsPublishedProp(Screen.ActiveForm.FindComponent(TEditPers(Screen.ActiveForm.Components[i]).CMCtrlAsociado), 'Text') then Screen.ActiveForm.FindComponent(TEditPers(Screen.ActiveForm.Components[i]).Text := 'XXXX valor'

else //bla bla
if TypInfo.IsPublishedProp(Screen.ActiveForm.FindComponent(TEditPers(Screen.ActiveForm.Components[i]).CMCtrlAsociado), 'Caption') then Screen.ActiveForm.FindComponent(TEditPers(Screen.ActiveForm.Components[i]).Caption := 'XXXX valor'


La franja horaria es GMT +2. Ahora son las 10:51:40.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi