Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-11-2003
tango01 tango01 is offline
Miembro
 
Registrado: jun 2003
Ubicación: Mar del Plata - Argentina
Posts: 46
Poder: 0
tango01 Va por buen camino
InheritsFrom

hola gente,

la funcion InheritsFrom me está devolviendo siempre false aún cuando estoy seguro que tendría que dar verdadero. Aca les paso como la estoy usando, seguramente estoy haciendo algo mal.
...
Código:
if self.list[i].InheritsFrom(TControl) then
...

Casi todas los componentes heredan de ahi. Grillas, Groupboxes, RatioGroups ... etc.

list es un TObjectList con un listado de objetos como Grillas, Groupboxes, RatioGroups ... etc.

Gracias por su ayuda

Federico.-
__________________
El secreto de la libertad está en no tener miedo.
Responder Con Cita
  #2  
Antiguo 20-11-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
La herencia de TObjectList es:
TObjectList -> TList -> TObject

Y los items de esta clase son del tipo TObject, por lo tanto lo que contenga esta lista puede heredar o no de TControl.

Porque no nos muestras algún otro ejemplo donde estes seguro que no funcione.


Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #3  
Antiguo 20-11-2003
tango01 tango01 is offline
Miembro
 
Registrado: jun 2003
Ubicación: Mar del Plata - Argentina
Posts: 46
Poder: 0
tango01 Va por buen camino
en la lista agrego TGroupBoxes por ejemplo
Código:
lista.add(Groupbox1);
lista.add(Groupbox2);
lista.add(DBGrid1);
lista.add(DBGrid2);
cuando recorro la lista
Código:
  for i := 0 to self.list.Count -1 do
hago el if:
Código:
if self.list[i].InheritsFrom(TControl) then
y estoy seguro que TGroupBox deriba de TControl y que estoy recorriendo bien porque si hago un
Código:
showmessage(TControl(self.list[i]).Name);
me dice "GroupBox1"

gracias por tu ayuda ... sigo probando sin exito
__________________
El secreto de la libertad está en no tener miedo.
Responder Con Cita
  #4  
Antiguo 20-11-2003
tango01 tango01 is offline
Miembro
 
Registrado: jun 2003
Ubicación: Mar del Plata - Argentina
Posts: 46
Poder: 0
tango01 Va por buen camino
debo tener otro problema porque si creo un proyecto nuevo con un boton y un groupbox
Código:
procedure TForm1.Button1Click(Sender: TObject);
begin
  if GroupBox1.InheritsFrom(Tcontrol) then
    showmessage('si')
  else
    showmessage('No');
end;
funciona bien.
__________________
El secreto de la libertad está en no tener miedo.
Responder Con Cita
  #5  
Antiguo 20-11-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Yo particularmente acostumbro usar el operador is, pero eso no viene al tema.

He probado esto, y funciona sin problemas:

Código:
procedure TForm1.Button2Click(Sender: TObject);
var
  Ol: TObjectList;
begin
  Ol := TObjectList.Create;
  Try
    Ol.Add(Button1);
    if Ol.Items[0].InheritsFrom(TControl) Then
      ShowMessage('Ok!')
    else
      ShowMessage(Ol.Items[0].ClassName + ' no hereda de TControl');
  finally
    Ol.Free;
  end;
end;
PD:
Me parece muy extraño que algo tan básico falle
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #6  
Antiguo 20-11-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Te aclaro que escribí el mensaje anterior sin leer tu último mensaje... pero tu último mensaje es aún mas desconcertante.

Prueba mostrar el ClassName cuando este falla...

Aunque sea muy loco: ¿Estas usando alguna unit que defina otra clase TControl ?... (CLX??) prueba comparando contra Controls.TControl
¿Que units estas usando?
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #7  
Antiguo 20-11-2003
tango01 tango01 is offline
Miembro
 
Registrado: jun 2003
Ubicación: Mar del Plata - Argentina
Posts: 46
Poder: 0
tango01 Va por buen camino
diste en la tecla delphi.com.ar !!!!!

estaba usando la unit QControls

no me preguntes por que .....

mil gracias.... son esos errores que podes estar años buscando ... gracias de nuevo.

saludos compatriota.

fede.-
__________________
El secreto de la libertad está en no tener miedo.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 10:50:31.


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
Copyright 1996-2007 Club Delphi