FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Referencias a componentes
Hola
Segun entiendo un componente puede ser tratado como un objeto, entonces trate de ejecutar este procedimiento: Código:
procedure Tprincipal.habilitarItems (item: TMenuItem); begin if (item.HasParent ) then habilitarItems (item.Parent); item.Visible:=true; end; |
#2
|
||||
|
||||
mira el problema que tu presentas es de tipo por que siempre le envias al procedimiento el padre del componente actual, lo que deberias es comprobar si el componente que te esta llegando es un TMenuItem que es el parametro que espera, la forma de asegurarnos de esto es hacer esta pequeña modificacion al codigo
Código:
procedure Tprincipal.habilitarItems (item: TMenuItem); begin //LINEA PROPUESTA if not(item is TMenuItem) then Exit; //asi te aseguras de que estas trabajando con tmenusitem y no con otro componente que sea padre del menu if (item.HasParent ) then habilitarItems (item.Parent); item.Visible:=true; end; si el problema es que el componente no se ha creado entonces el error esta en la primera llamada del procedimiento porq luego el ciclo trabaja solo con los padres que son componentes ya creados suerte
__________________
...Yo naci en esta ribera del arauca vibr@d0r Soy hermano de la espuma, de la garza, de la rosa y del sol... Viva Venezuela |
#3
|
||||
|
||||
Una pequeña puntualización:
Cita:
Código:
procedure TForm1.habilitarItems(item: TMenuItem); begin if (Assigned(item.Parent) ) then habilitarItems (item.Parent); item.Visible:=true; end; Cita:
__________________
E pur si muove |
#4
|
||||
|
||||
esto es lo interesante del foro, ya que se deja ver la diversidad de maneras en las que se puede llegar a resolver un problema, al fin y al cabo eso es una de las verdades de la programacion, nunca dos programas seran iguales ya que ellos reflejan nuestra manera de pensar
__________________
...Yo naci en esta ribera del arauca vibr@d0r Soy hermano de la espuma, de la garza, de la rosa y del sol... Viva Venezuela |
|
|
|