Hola amigos, estoy experimentando la ultilizacion de formularios dentro de bpls, pero estoy obteniendo un efecto extraño en la aplicasion:
al llamar en formulario que esta dentro de la bpl me da este efecto , el form se abre como otra tarea en la barra de tareas, como puedo evitar este efecto?.
me hechan una mano?
[RESUELTO] Sobre las Bpls
Comenzado por
look
, mar 28 2011 01:29
5 respuestas en este tema
#1
Escrito 28 marzo 2011 - 01:29
#2
Escrito 28 marzo 2011 - 01:51
Qué raro, yo uso extensivamente BPLS y nunca me ha pasado eso. Podrias describir un poco de como las estas usando?
#3
Escrito 28 marzo 2011 - 01:57
hola amigo , tambien a mi me parece extraño ya que tengo otro projecto en delphi 7 y no me da este efecto, sinembargo en este projecto estoy utilizando el delphi 2010...
este es mi form principal:
y este el que esta en la bpl:
este es mi form principal:
delphi
unit uFrmPrincipal; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, Menus, ImgList, ExtCtrls, Buttons, StdCtrls; type TcInvServs = procedure; TcDataModule_Invent = procedure; TFrmPrincipal = class(TForm) pgc1: TPageControl; ts1: TTabSheet; ts2: TTabSheet; ts3: TTabSheet; ts4: TTabSheet; mm1: TMainMenu; Archivo1: TMenuItem; Edicion1: TMenuItem; Reortes1: TMenuItem; Ayuda1: TMenuItem; stat1: TStatusBar; pnl1: TPanel; ilImages: TImageList; btn1: TSpeedButton; btn2: TSpeedButton; pnl2: TPanel; pnl3: TPanel; pnl4: TPanel; btn3: TSpeedButton; procedure CargarBpls(); procedure FormDestroy(Sender: TObject); procedure FormCreate(Sender: TObject); procedure btn3Click(Sender: TObject); private /// inventarios PckgModuleInv : HModule; cInvServs : TcInvServs; cDataModule_Invent :TcDataModule_Invent; ///// procedure LoadPckgModuleInv; { Private declarations } public { Public declarations } end; var FrmPrincipal: TFrmPrincipal; implementation {$R *.dfm} procedure TFrmPrincipal.btn3Click(Sender: TObject); begin if PckgModuleInv = 0 then LoadPckgModuleInv; if Assigned(cInvServs) then cInvServs; end; procedure TFrmPrincipal.CargarBpls(); begin LoadPckgModuleInv; end; procedure TFrmPrincipal.FormCreate(Sender: TObject); begin CargarBpls(); end; procedure TFrmPrincipal.FormDestroy(Sender: TObject); begin try if PckgModuleInv <> 0 then UnloadPackage(PckgModuleInv); except end; end; procedure TFrmPrincipal.LoadPckgModuleInv; begin PckgModuleInv := LoadPackage('ModInv.bpl'); if PckgModuleInv <> 0 then try @cInvServs := GetProcAddress(PckgModuleInv,'cInvServs'); @cDataModule_Invent := GetProcAddress(PckgModuleInv,'cDataModule_Invent'); except ShowMessage ('Error al cargar ModInv.Bpl '); end; end; end.
y este el que esta en la bpl:
delphi
unit uFrmInventarios; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, Menus, Buttons; procedure cInvServs; type TFrmInventarios = class(TForm) pnl1: TPanel; mm1: TMainMenu; Archivos1: TMenuItem; Edicion1: TMenuItem; Reportes1: TMenuItem; Ayuda1: TMenuItem; btn1: TSpeedButton; procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var FrmInventarios: TFrmInventarios; implementation {$R *.dfm} procedure cInvServs; begin if NOT Assigned(FrmInventarios) then Begin FrmInventarios := TFrmInventarios.Create(Application); FrmInventarios.Show; EXIT; END ELSE; FrmInventarios.Show; FrmInventarios.WindowState:=wsMaximized; end; exports cInvServs; procedure TFrmInventarios.FormCreate(Sender: TObject); begin { SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE or SWP_SHOWWINDOW); } end; end.
#4
Escrito 28 marzo 2011 - 03:48
hola amigos descubri algo :
como ven , si selcciono build wrp. funciona muy bien, a que se debe esto? , en mi delphi 7 no pasa esto, en delphi 7 esa funcion la tengo uncheck y funciona muy bien pero en este delphi tube que hacer esto.
estoy confundido.
como ven , si selcciono build wrp. funciona muy bien, a que se debe esto? , en mi delphi 7 no pasa esto, en delphi 7 esa funcion la tengo uncheck y funciona muy bien pero en este delphi tube que hacer esto.
estoy confundido.
#5
Escrito 28 marzo 2011 - 04:23
Esa opción es para que el compilador integre los paquetes dentro del ejecutable o para que los cargue en tiempo de ejecución.
cuando trabajas con paquetes es necesario que esté habilitado
cuando trabajas con paquetes es necesario que esté habilitado
#6
Escrito 28 marzo 2011 - 04:24
entiendo , gracias amigo.
Saludos!.
Saludos!.