Fórum Modularização de softwares #341548
10/05/2007
0
então desenvolvi uma maneira de fazer isso, utilizando dlls..
dai eu crio uma dll com funções padroes.. e um objeto que as cria dentro do sistema..
unit FormControl;
interface
uses
Classes, Windows, Messages, SysUtils, Forms, ComCtrls, Controls;
type
TOpenFormDLL = procedure(Application: Pointer);
TOpenParamDLL = procedure(P: TWinControl);
TFormControl = class(TComponent)
private
FParent: TWinControl;
protected
public
procedure FormDLL(DLL: String);
procedure SetParent(Parent: TWinControl);
constructor Create(AOwner: TComponent); reintroduce;
destructor Destroy; override;
end;
implementation
constructor TFormControl.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
end;
destructor TFormControl.Destroy;
begin
inherited Destroy;
end;
{Chama um Form Dentro de uma dll}
procedure TFormControl.FormDLL(DLL: String);
var
vProc : TOpenFormDLL;
vProc2 : TOpenParamDLL;
vDll : THandle;
begin
vDll := LoadLibrary(PCHar(DLL));
if (vDLL <> 0) then
begin
@vProc := GetProcAddress(vDll,PCHar(´ShowFrm´));
@vProc2 := GetProcAddress(vDll,PCHar(´SetContainer´));
if (@vProc <> nil) then
begin
vProc(Pointer(Application));
end;
if (@vProc2 <> nil) then
begin
//vProc2((FParent));
end;
end;
end;
procedure TFormControl.SetParent(Parent: TWinControl);
begin
FParent := Parent;
end;
end.
esta eh a classe q desenvolvi para criar meus formularios.. neste caso os crio como TDI..
porem acredito que modularização via pacotes bpl seje mais eficaz e simples de trabalhar, e outro ponto que acredito que seje favoravel, seje a parte de alocação de objetos, pois da forma que eu faço, quando clica com direito num controle do estilo TEdit, mostra uma mensagem de erro dizendo que o objeto nao possui um controle parent..
alguem aki mexe com bpl?
sou um desenvolvedor sem muito tempo para estudos sobre novas tecnologias, ou antigas, pois tenho quase que minhas 24h ocupadas com trabalho e estudos..
se alguem poder me dar uma luz agradeço desde ja..
o src da minha dll, se alguem se interessar so pedir que eu envio por email, so que eu axo invalido investir nessa minha ideia..
Nightshade
Curtir tópico
+ 0Posts
10/05/2007
Renatacoimbra
Assim q possivel publicarei os exemplos.
[]´s
Gostei + 0
10/05/2007
Luciano Paranhos
Que Legal! vou esperar ansioso. Eu não sei nada sobre o assunto e quero saber um pouco mais, porem, o que encontro na internet é muito vago.
Gostei + 0
11/05/2007
Nightshade
Gostei + 0
11/05/2007
Titanius
Com certeza... insere-se qualquer coisa neles...
[]s
Gostei + 0
12/05/2007
Nightshade
axei um tempinho hj para dar uma procurada sobre BPLs no google..
axei um artigo bem interessante, com exemplo
[url]http://www.activedelphi.com.br/modules.php?op=modload&name=News&file=article&sid=499[/url]
resolvi compartilhar com a galera ^^
abraço a todos..
Gostei + 0
12/05/2007
Titanius
[]s
Gostei + 0
12/05/2007
Nightshade
baixei o exemplo do link.. blz
so q dai eu tirei a classe de conexao e os objetos do form, dexei um form limpo e a aplicação q abre o form do bpl
dai ele dexa a aplicação com 17k..
adicionei no runtime packages o formulario.bpl.. como manda fzr com a classe de conexao ali.. so alterei o bpl
dai quando eu rodo ele na minha makina, roda..
so que se eu mando rodar numa maquina que não tem o delphi instalado ele prede um bpl de runtime nativo do delphi..
como adiciono packages de runtime e os nativos do delphi na compilaçao ao mesmo tempo?
Gostei + 0
13/05/2007
Titanius
na outra maquina, tais pacotes deverão ficar no Windows\System ou no local do EXE.
[]s
Gostei + 0
14/05/2007
Nightshade
tem outra forma de fazer isto?
Gostei + 0
14/05/2007
Titanius
[]s
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)