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

Escrito por Jose Antonio

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 24.12.05

Lanzamiento de JfControls 24.12.05

Mejoras ... ⦁ Compatibilidad con Delphi 12.0 y CBuilder 12.0 (32 y 64 bits).⦁ Detección de Windows 11 en la función JfPlatform.⦁ Refactorización de las ventanas de diseño para que su posición y tamaño se guarden entre ejecuciones de Delphi/C++Builder.⦁ Nuevo...

Desarrollo de aplicaciones empresariales

Desarrollo de aplicaciones empresariales

Para el desarrollo de aplicaciones empresariales se necesitan herramientas que tengan las siguientes características: Flexibilidad, adaptabilidad, facilidad, capacidad de expansión.Soporte de múltiples tipos de dispositivos.Capacidad de reacción ante los cambios que...

Lanzamiento de JfControls 23.01.10

Lanzamiento de JfControls 23.01.10

Mejoras ... ⦁ Compatibilidad con Delphi 11.0 y CBuilder 11.0 (32Bit & 64Bit). Correcciones ... ⦁ Corrección de errores menores. Queríamos lanzar una nueva versión de compatibilidad con Delphi 11.0 y CBuilder 11.0 antes de lanzar una nueva versión que traerá muchas...

0 comentarios

Enviar un comentario