Buenas,
He creado un paquete con un form (TmessageBox1) y lo cargo de la manera siguiente:
Código Delphi
[-]
var
FormScroll: TForm;
FormClass: TFormClass;
HandlePack: HModule;
begin
HandlePack := LoadPackage ('mipaquete.bpl');
if HandlePack > 0 then
begin
FormClass := TFormClass(GetClass ('TMessageBox1'));
if Assigned (FormClass) then
begin
FormScroll := FormClass.Create (Application);
try
FormScroll.ShowModal;
finally
FormScroll.Free;
end;
end
else
ShowMessage ('Form class not found');
UnloadPackage (HandlePack);
end
else
ShowMessage ('Package not found');
end;
El problema es que carga el paquete pero no encuentra la clase TMessageBox1, devuelve FormClass = nil.
Y el nombre de la clase esta bien.
La clase TmessageBox1 es:
Código Delphi
[-]
unit ShowMessageForm;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;
type
TMessageBox1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
public
end;
var
MessageBox1: TMessageBox1;
implementation
{$R *.dfm}
procedure TMessageBox1.Button1Click(Sender: TObject);
begin
ShowMessage('Hola');
end;
initialization
RegisterClass(TMessageBox1);
finalization
UnregisterClass(TMessageBox1);
end.
Gracias