Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Rodrigo Miss

Form dentro da dll

Recommended Posts

Ola! Boa tarde ...Alguem sabe como coloco um form bm simples dentro de uma dllalgo tipow so pra mim aprender a fazer issu msm..,, tipow um form com um botao okq qdo clika no ok dispara uma msg....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz um pequeno exemplo de uma DLL:

 

 

 

library ExemploDLLForm;{ Important note about DLL memory management: ShareMem must be the  first unit in your library's USES clause AND your project's (select  Project-View Source) USES clause if your DLL exports any procedures or  functions that pass strings as parameters or function results. This  applies to all strings passed to and from your DLL--even those that  are nested in records and classes. ShareMem is the interface unit to  the BORLNDMM.DLL shared memory manager, which must be deployed along  with your DLL. To avoid using BORLNDMM.DLL, pass string information  using PChar or ShortString parameters. }uses  Forms,  StdCtrls,  Controls,  Buttons,  Dialogs;type  TClasseExemplo = class  public	class procedure btnTesteClick(Sender: TObject); virtual;  end;var   form: TForm;{$R *.res}class procedure TClasseExemplo.btnTesteClick(Sender: TObject);beginShowMessage('Teste Form dentro de DLL !');end;procedure ExibeFormDll; stdcallvar   msg: TLabel;   botao: TBitBtn;begin//Cria o Formulárioform:=TForm.Create(Application);form.BorderIcons:=[biSystemMenu];form.BorderStyle:=bsSingle;form.Caption:='Exemplo Form dentro de DLL';form.Height:=100;form.Name:='frmDll';form.Position:=poScreenCenter;form.Width:=150;//Cria uma mensagemmsg:=TLabel.Create(form);msg.Parent:=form;msg.AutoSize:=True;msg.Caption:='Label de teste.';msg.Left:=20;msg.Name:='lblTeste';msg.Top:=5;//Cria botão testebotao:=TBitBtn.Create(form);botao.Parent:=form;botao.Caption:='Teste';botao.Left:=10;botao.Name:='btnTeste';botao.Top:=30;botao.Width:=60;botao.OnClick:=TClasseExemplo.btnTesteClick;//Cria um botão de fecharbotao:=TBitBtn.Create(form);botao.Parent:=form;botao.Left:=70;botao.Caption:='&Fechar';botao.Name:='btnFechar';botao.Top:=30;botao.Width:=60;botao.ModalResult:=mrOk;form.ShowModal;form.Free;end;exports ExibeFormDll;beginend.

 

Para chamar basta declarar no seu sistema:

 

procedure ExibeFormDll; stdcall; external 'ExemploDLLForm.dll';

Chamar:

 

ExibeFormDll();

 

 

Outro exemplo com criação não dinâmica: http://www.link-rank.com/dll.htm

Mais um exemplo: http://delphi.about.com/library/weekly/aa020805a.htm

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.