Ver Mensaje Individual
  #4  
Antiguo 21-05-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Tal como dice maeyanes el operador is te permite averiguar que tipo de objeto es el actual,
pero tiene un inconveniente: aceptaría como TButton a un descendiente de él. (Como bién lo
aclara maeyanes en la línea de comentario).
Para saber exactamente cuál es el tipo del componente tendrías que usar ClassType para averiguarlo.

Un ejemplo:
Código:
procedure TForm1.ShowTipoCtrl;
var
  i: Integer;
  TC: TClass;
begin
  for i:= ControlCount -1 downto 0 do
  begin
    TC:= Controls[i].ClassType;
    if TC = TButton  then ShowMessage('TButton');
    if TC = TLabel then  ShowMessage('TLabel');
    if TC = TButtonExt then ShowMessage('TButtonExt')
  end
end;
Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 21-05-2010 a las 03:22:26.
Responder Con Cita