Fórum Sobre a Modularização #293244

26/08/2005

0

Tem como fazer com que um projeto modularizado, acesse os arquivos BPL´s de dentro de uma pasta por exemplo: ´\USR\PROJETO\MODULOS´ a ultima pasta modulos no caso seria onde estive-se os arquivos BPL´s. Por que atualmente so consigo acesser os BPL´s dentro da pasta onde estar o executavel do meu projeto. Caso exista alguma maneira, por favor, se tiver como mim ajudem.

Att. Wendel Galvão.


Deltakronos

Deltakronos

Responder

Posts

26/08/2005

Massuda

Pelo que me lembro, a carga dos packages respeita as mesmas regras da carga de DLLs, ou seja, quando um BPL vai ser carregado ele e procurado no:[list:4e8f699712][*:4e8f699712]diretório do programa[*:4e8f699712]diretório ativo do programa[*:4e8f699712]diretório System/System32 do Windows[*:4e8f699712]diretório do Windows[*:4e8f699712]diretórios listados no PATH[/list:u:4e8f699712]Se você estiver carregando dinamicamente o BPL, você pode especificar o caminho na chamada do LoadPackage.


Responder

Gostei + 0

26/08/2005

Fhenrique

Amigos, aproveitando, onde eu encontro material para modulos em bpl?


desde ja agradeço


Responder

Gostei + 0

26/08/2005

Technos

tb to a espera sobre essa resposta


Responder

Gostei + 0

01/09/2005

Zumbi

Vamos compartilhar o conhecimento galera, eu tb estou a algum tempo atraz de como fazer isso e não consegui muita coisa não.

Vamos nos unir e fazer um material consistente para nossos amigos programadores, não ficar muito tempo atraz da mesma coisa como eu estuo.

Vlw pessoal, e vamos compartilhar nossos conhecimentos.


Responder

Gostei + 0

02/09/2005

Titanius

Estou de acordo zumbi, estou a muito, muito tempo mesmo atrás de algo sobre isso, o que me encana é a conexão com o banco de dados... pois não quero que cada modulo tenha um Connection, assim pra cada sistema com 4 modulos rodando teria 4 conexoes com o banco fora o principal... isso arrebenta ...

um amigo de outro forum, me falou sobre o Hydra, da RemObjects, fiquei muito interessado nele, o porem, é que ele é pago, e muito caro por sinal, algo em torno de 200 Euros... :( me desanimou...

Mas isso aí, quanto mais gente discutindo melhor... agrega valores à comunidade. :wink:

[]s


Responder

Gostei + 0

02/09/2005

Wiltefran

Eu concordo plenamente, estou procurando informações sobre isso a algum tempo tambem, mas nao achei nada q me levasse a frente.



Wiltefran Silva


Responder

Gostei + 0

02/09/2005

Titanius

Alguem mais se habilita? :roll: :roll:


Responder

Gostei + 0

05/09/2005

Titanius

Opa, tentando reavivar esta discussão, pois considero de extrema importância :oops:

Alguém tem mais alguma idéia?


Responder

Gostei + 0

10/10/2005

Zumbi

Alguem tem algum material, ou saberia algum lugar que poderia achar material sobre esse assunto?


Responder

Gostei + 0

10/10/2005

Marcio.theis

Eu também entro na questão de como fazer isto.... Pois estou passando os relatórios para BPL e não quero ter várias connections no projeto... Massuda me passou estes dois link´s:
http://users.tpg.com.au/vinorodr/insight/delphi/dpackage/dpackage.shtml
http://users.tpg.com.au/vinorodr/insight/delphi/advdpack/advdpack.shtml
Mas participo da discussão e no desenvolvimento de como dar uma solução para o problema...


Responder

Gostei + 0

10/10/2005

Renatacoimbra

Olá Pessoal !

Meu Sistema é todo dividido em BPLs, tive muito trabalho pois sou novata em Delphi, mais está funcionando, se eu poder ajudar em alguma coisa estou a disposição.


Responder

Gostei + 0

10/10/2005

Titanius

Olá amigos,
O meu problema, é com a conexão e com MDI,

Conexão:
Teria que ter algum jeito de focalizar a conexão em um único modulo, o principal, ainda não conesegui...

MDI, tem como faz uma MDI Child nos Modulos? BPL?

Se puderem me ajudar.. poutz, fico muitissimo agradecido.. :-)

[]s


Responder

Gostei + 0

10/10/2005

Renatacoimbra

Olá titanius !

vc usa alguma OO nos seus projetos ?

Uma simples herança de Forms facilita muito.
vc pode criar um BPL pai e dentro dele colocar seu DM com a conexao principal, daí é só fazer referencia a ela nas outras BPLs.


Responder

Gostei + 0

10/10/2005

Renatacoimbra

Olá titanius !

Quanto a usar MDI em BPLs é quase a mesma coisa de usar SDI, eu uso duas funções, uma pra localizar a classe Form, (no meu caso uso uma classe TFrmPadrao) e a outra para instanciar o formulário da BPL.

[color=brown:33cfcca830]1.
Esta função faz meramente uma busca nos formulários MDI criados e visíveis caso encontre, retorna uma referência a ele como TFrmPadrao.
A mesma função poderia ser usada para SDI, se a aplicação fosse SDI, poder-se-ia substituir o MDIChildCount por Screen.FormCount e MDIChildren por Screen.Forms
formulários[/color:33cfcca830]


class function InstForm.LocalizarFormularioMDI( const s : ShortString ) : TfrmPadrao;
var Encontrou : TfrmPadrao;
    i : Byte;
    mf : TForm;
begin
   mf := Application.MainForm;
  Encontrou := nil;
  if mf.MDIChildCount <> 0 then begin
     for i := 0 to mf.MDIChildCount - 1 do begin
         if UpperCase( mf.MDIChildren[i].Name ) = UpperCase( s ) then begin
            Encontrou := TfrmPai( mf.MDIChildren[i] );
            Break;
         end;
     end;
  end;
  Result := Encontrou;
end;



[color=brown:33cfcca830]Essa outra tem a função de Instanciar o form da BPL:[/color:33cfcca830]



class procedure InstForm.InstanciarFormularioMDI( const Package, NomeForm : ShortString );
var h : THandle;
    f : TfrmPadrao;
    CriarNovoForm : function : TfrmPadrao;
begin
  // Verifica se o formulário já está na tela
  f := LocalizarFormularioMDI( NomeForm );
  if f <> nil then begin
     // Se já estiver na tela, apenas o traz para a frente de todos
     f.Show;
  end else begin
     // Carrega o package
     h := LoadPackage( Package );
     if h <> 0 then begin
        {
         Procura por uma função de inicialização do form. O nome foi
         padronizado, como se pode observar. Fique atento a detalhes de
         minúsculas e maiúsculas
        }
        @CriarNovoForm := GetProcAddress( h, PChar( ´CriarNovo´ + NomeForm ) );
        if Assigned(CriarNovoForm) then begin
           CriarNovoForm;
        end;
     end;
  end;
end;




Em todos os formulários colocar a função:


function CriarNovofrmA : TfrmPadrao;
begin
  CriarNovoNomeFormCriar := TNomeFormCriar.Create( Application );
end;

exports
  CriarNovoNomeFormCriar;




[color=brown:33cfcca830]Para chamar a função instanciar form fica assim:[/color:33cfcca830]


  TInstForm.InstanciarFormularioMDI( BPL, ´NomeFormDentroBPL´ );




Responder

Gostei + 0

10/10/2005

Titanius

Olá titanius ! vc usa alguma OO nos seus projetos ? Uma simples herança de Forms facilita muito. vc pode criar um BPL pai e dentro dele colocar seu DM com a conexao principal, daí é só fazer referencia a ela nas outras BPLs.


Olá Renata,

A única coisa que mexi em OO, foi fazer meus forms de Cadastros instaciados de um único Form Basico..
Com isto vc me deixou com um outra duvida, sendo os forms herdados, ele herdaria este form de onde? do modulo principal?eu eu teria que ter o FormBasico em todos os BPL?

E uma outra questao, como vc faz com a conexao ao banco?

[]s


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar