Lo primero que veo es que si utilizas
ShowModal, no accederás a la línea que comentas hasta que no cierres el formulario,por lo tanto en este caso debería utilizar
Show.
Por otro lado, como estás accediendo al formulario de forma genérica, para acceder al label puedes utilizar
FindComponent, por ejemplo.
Cambia el código por este:
Código Delphi
[-]
with TComponentClass(AClass).Create(Application)
as TCustomForm do
begin
Show;
componentLabel := FindComponent('Label1');
if Assigned(componentLabel) then begin
TLabel(componentLabel).Caption := 'hola';
MessageDlg('¿Ves el cambio? Pulsa para continuar y cerrar...', mtConfirmation, [mbOK], 0);
TLabel(componentLabel).Caption := 'Adiós';
MessageDlg('Lo he vuelto a cambia......', mtConfirmation, [mbOK], 0);
Free;
end;
end;
Además en el package debes registrar la clase del formulario para poder encontrarla posteriormente con
GetClass.
Al final de la Unit del Form2 coloca este código:
Código Delphi
[-]
initialization
RegisterClass(TForm2);
finalization
UnregisterClass(TForm2);
Por último asegurate de que estás compilando el proyecto con la opción "Build with runtime Packages".
Descarga este ejemplo y revisa el código, creo que te puede ser de utiidad (
Sistema de plug-ins utilizando packages dinámicos).
Un saludo.