Ver Mensaje Individual
  #2  
Antiguo 27-01-2004
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Reputación: 25
eduarcol Va por buen camino
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
Responder Con Cita