Fórum Como carregar o form que esta numa dll. #178607
30/08/2003
0
Desde Ja agradeço.
Ltsilva
Curtir tópico
+ 0Posts
31/08/2003
Alysson
Application.CreateForm(TForm1, Form1);
Onde:
*TForm1 = O classe do form, seus botoões, suas procedures, etc....
*Form1 = Nome do Form......
Gostei + 0
31/08/2003
Bacalhau
Procedure MostraForm(...);
var X : TMeuForm
begin
X := TMeuForm.create(MeuForm);
X.showmodal;
end;
no fim da DLL leva a linha
exports MostraForm index 1;
Na aplicação que chama o DLL escreves depois dos types
PROCEDURE MOSTRAFORM EXTERNAL ´NOME.DLL´;
Quando quiseres chamar o form digitas
MOSTRAFORM
Táfeito
Gostei + 0
03/09/2003
Ltsilva
Tem como o form ficar no mesmo botão da Aplicação?
Att
Gostei + 0
04/09/2003
Bacalhau
O natural é fazer form com o formstyle = MDIChild. O problema é colocar numa DLL e a aplicação ´mãe´ estabelecer uma ligação. Normalmente dá bronca. Eu já li um artigo sobre isso; tenta ir ao google e pesquisar ´MDIChild in DLL´. Se eu achar digo
Gostei + 0
05/09/2003
Ltsilva
Na DLL...
library LibForm1;
uses
SysUtils,
Classes,forms, windows,
UForm1 in ´UForm1.pas´ ;
{$R *.res}
var
oApp : TApplication;
oScr : TScreen;
procedure MyDLLProc(Reason: Integer);
begin
if Reason = DLL_PROCESS_DETACH then
begin
Application := oApp;
Screen := oScr;
end;
end;
procedure ShowFrm(App:TApplication; Scr : TScreen); stdcall;
begin
Application := App;
Screen := Scr;
App.CreateForm(TForm1, Form1);
Form1.Show;
end;
exports
ShowFrm;
begin
oApp := Application;
oScr := Screen;
DLLProc := @MyDLLProc;
end.
E na Aplicação...
unit UPrinc;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
procedure ShowFrm(App: TApplication;Scr: TScreen); stdcall;
type
TPrinc = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Princ: TPrinc;
implementation
procedure ShowFrm(App: TApplication;Scr: TScreen); external ´LibForm1.dll´ name ´ShowFrm´;
{$R *.DFM}
procedure TPrinc.Button1Click(Sender: TObject);
begin
ShowFrm(Application, Screen);
end;
end.
O que seria de mim se não fosse esse Forum, Valeu Bacalhau, este exemplo eu peguei no Google, só tive o trabalho de mudar o form de MDIChild para Normal.
Gostei + 0
06/09/2003
Bacalhau
Também já aprendi mais uma...
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)