Seleccionar página
¿Cómo trabajar con ‘paquetes cargados dinámicamente’ que contienen formularios dentro de ellos?

Escrito por Francisco R.

El ejecutable que vas a utilizar para cargar esos paquetes dinámicos (dpl, bpl) debe tener conectada la opción ‘Build with runtime packages‘, además, en el campo de edición correspondiente a esta opción debe encontrarse el nombre del paquete o paquetes de JfControls que utilice, es decir: JfCtrls_d6;JfCtrlsGrid_d6

Esta opción se suele encontrar en ‘Project Options‘ / Packages Tab.

También deberán encontrarse en dicho campo de edición todos aquellos paquetes de Delphi que quiera utilizar la aplicación estáticamente.

Cada unidad del paquete (dpl, bpl) que contenga una forma deberá de registrarla de la siguiente manera:

initialization
  RegisterClass(TFrForm1);
finalization
  UnRegisterClass(TFrForm1);

Para crear las formas contenidas en los paquetes dinámicos deberán de utilizarse las siguientes funciones de JfControls:

procedure JfWndPkgCreate(AOwner: TCustomForm; var AForm: TForm; ALibrary: String; AFormClass: String; ACenterOptions: TJfCenterOptions);
procedure JfWndPkgCreateModal(AOwner: TCustomForm; var AForm: TForm; ALibrary: String; AFormClass: String; ACenterOptions: TJfCenterOptions);
procedure JfWndPkgShow(AOwner: TCustomForm; var AForm: TForm; ALibrary: String; AFormClass: String; ACenterOptions: TJfCenterOptions);
function JfWndPkgShowModal(AOwner: TCustomForm; var AForm: TForm; ALibrary: String; AFormClass: String; ACenterOptions: TJfCenterOptions): TModalResult;

Por ejemplo:

 TFrMain = class(TForm)
    JfCApp: TJfCApplication;
    CForm: TJfCForm;
    JfSpeedButton1: TJfSpeedButton;
    JfSpeedButton2: TJfSpeedButton;
    procedure JfSpeedButton1Click(Sender: TObject);
    procedure JfSpeedButton2Click(Sender: TObject);
    procedure CFormFormDestroy(Sender: TObject);
  private
    { Private declarations }
    f1, f2: TForm;
  public
    { Public declarations }
  end;
procedure TFrMain.JfSpeedButton1Click(Sender: TObject);
begin
  JfWndPkgShow(Self, f1, 'FormsPkg.dpl', 'TFrForm1', ceoPriorWindow);
end;
procedure TFrMain.JfSpeedButton2Click(Sender: TObject);
begin
  JfWndPkgShow(Self, f2, 'FormsPkg.dpl', 'TFrForm2', ceoPriorWindow);
end;
procedure TFrMain.CFormFormDestroy(Sender: TObject);
begin
  if Sender = f1 then f1 := nil;
  if Sender = f2 then f2 := nil;
end;

Versión: 1.0.0

Tamaño: 28 KB

Publicado: agosto 12, 2020

Ejemplo de paquetes cargados dinámicante (Delphi 3)

Disponible en: JfControls Standard, Developer y Profesional


Versión: 1.0.0

Tamaño: 30 KB

Publicado: agosto 12, 2020

Ejemplo de paquetes cargados dinámicante (Delphi 5)

Disponible en: JfControls Standard, Developer y Profesional


Versión: 1.0.0

Tamaño: 30 KB

Publicado: agosto 12, 2020

Ejemplo de paquetes cargados dinámicamente (Delphi 6)

Disponible en: JfControls Standard, Developer y Profesional



También te puede interesar…

Lanzamiento de JfControls 21.07.09

Lanzamiento de JfControls 21.07.09

Hoy nos complace presentar la nueva versión de JfControls 21.07.09 compatible con RADStudio 10.4. Mejoras ... ⦁ Mejoras en la compatibilidad con Delphi 10.3.3 y CBuilder 10.3.3 (32Bit & 64Bit). ⦁ Compatibilidad con Delphi 10.4 y CBuilder 10.4 (32Bit & 64Bit)....

RAD Studio 10.4 está Aquí

RAD Studio 10.4 está Aquí

RAD Studio 10.4 mejora radicalmente el desarrollo nativo de Windows Nos complace anunciar la disponibilidad general de RAD Studio 10.4. La versión 10.4 trae mejoras significativas para el desarrollo de escritorio de Windows 10 VCL (Biblioteca de componentes visuales),...

Lanzamiento de JfControls 20.08.21

Lanzamiento de JfControls 20.08.21

Hoy nos complace presentar la nueva versión de JfControls 20.08.21 compatible con RADStudio 10.3.2. Mejoras ... ⦁ Mejoras en la compatibilidad con Delphi 10.2.3 y CBuilder 10.2.3 (32Bit & 64Bit). ⦁ Compatibilidad con Delphi 10.3.2 y CBuilder 10.3.2 (32Bit &...

0 comentarios

Enviar un comentario