Ver Mensaje Individual
  #18  
Antiguo 03-11-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Reputación: 29
Lepe Va por buen camino
Mientras roman llega y no llega, doy mi opinión .

Tu no tienes que crear Facciones ni mucho menos. Delphi se encarga de crear el TActionList cuando lo agregas a tu form y "crea" los editores y formularios (editor de propiedades). Y también destruirá el TActionList cuando lo quites en tiempo de diseño de tu forma. Tú lo único que tienes que hacer es asignar el actionList y cuando necesites acceder, comprobar que no es nil.

Código Delphi [-]
constructor TDecBrowser.Create(AOwner: TComponent);
  begin
    inherited Create(AOwner);
    FEnlaces := TStringList.Create;
    FAcciones := nil;
    inherited OnBeforeNavigate2 := ComprobarEnlaces;
  end;

y dejar tu propiedad como:
Código Delphi [-]
  property Acciones: TActionList read FAcciones write FAcciones;
Si se quita el TActionList del form supongo (comprobar en delphi (1*)) que el IDE le asigna nil a tu propiedad Facciones, y como en tu código siempre compruebas que FAcciones es distinto de nil (con assigned si quieres), tú componente jamás dará violaciones de acceso.

(1*) - Para comprobar este punto, te sirve mejor el métod SetAcciones, para poner un punto de ruptura y comprobar que es realmente nil

A menos que tu componente lleve una propiedad Acciones, que al pulsar en los 3 puntitos, deba aparecer el editor de propiedades de un TActionList. Este método me parece un poco extraño, pero es la única explicación de hacer un TActionList.Create dentro de tu componente.

No sé si me he explicado bien.

saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita