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