Ver Mensaje Individual
  #1  
Antiguo 01-04-2019
jlrbotella jlrbotella is offline
Miembro
 
Registrado: ene 2007
Posts: 185
Reputación: 18
jlrbotella Va por buen camino
Smile Cargar form desde un paquete bpl

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
// try to load the package
  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
    { Private declarations }
  public
    { Public declarations }
  end;

var
  MessageBox1: TMessageBox1;

implementation

{$R *.dfm}

procedure TMessageBox1.Button1Click(Sender: TObject);
begin
  ShowMessage('Hola');
end;

initialization
  RegisterClass(TMessageBox1);

finalization
  UnregisterClass(TMessageBox1);

end.

Gracias
Responder Con Cita