Fórum Trabalhando com Pacotes em Delphi #364517
01/10/2008
0
Estou ingressando nesse forum agora, e já trago um problema bem complicado... pelomenos pra mim.
Estou começando a trabalhar com Pacotes em Delphi para modularizar um sistema e tenho encontrado várias barreiras, uma delas é a falta de material de pesquisa. Mas vamos lá, o problema hoje é:
Presiso fazer uma referencia circular entre dois pacotes que criei, por exemplo:
Criei os pacotes P01 e P02, onde, P01 referencia o P02 e o P02 referencia o P01.
Porem quando P02 referencia o P01 e tento compilar o pacote P02 recebo o seguinte erro: ´[Error] P02.dpk(54): Package ´P02´ already contains unit ´Unit1´´
Se alguem puder me ajudar, por favor, isso é muito urgente pra mim hoje.
Albervan
Curtir tópico
+ 0Posts
01/10/2008
Emerson Nascimento
usando seu exemplo, seria assim:
P01.dpk | +-- contains | +--- unit1.pas | +--- unit2.pas | +--- unit3.pas | +-- requires +--- rtl.dcp P02.dpk +-- contains | +--- unit1.pas | +--- unit4.pas | +--- unit5.pas | +-- requires +--- rtl.dcp +--- P01.dcp
note que o pacote P01 contém [i:e788855f7d]unit1.pas[/i:e788855f7d], [i:e788855f7d]unit2.pas[/i:e788855f7d] e [i:e788855f7d]unit3.pas[/i:e788855f7d].
o pacote P02 contém [i:e788855f7d]unit1.pas[/i:e788855f7d], [i:e788855f7d]unit4.pas[/i:e788855f7d] e [i:e788855f7d]unit5.pas[/i:e788855f7d].
a [i:e788855f7d]unit1[/i:e788855f7d] é comum aos dois pacotes, porém, no pacote P02 foi indicado o uso do P01 na cláusula [i:e788855f7d]requires[/i:e788855f7d]. assim, o compilador procura pelas units nos pacotes refereciados ali na cláusula [i:e788855f7d]requires[/i:e788855f7d].
então as units [i:e788855f7d]unit4[/i:e788855f7d] e [i:e788855f7d]unit5[/i:e788855f7d] serão compiladas dentro de P02, porém a [i:e788855f7d]unit1[/i:e788855f7d] será utilizada a partir do P01, sendo somente referenciada no P02.
dessa forma, ele saberá que a unit1.pas será obtida do pacote P01 e não irá gerar erro em tempo de compilação.
deu pra entender?
Gostei + 0
02/10/2008
Albervan
- A Unit1.pas do P01.dpk é uma unit de funções somente, sendo usada em praticamente todos os pacotes do sistema, tendo variáveis globais e etc;
- A Unit4.pas do P02.dpk é um formulário de busca;
- Na Unit1.pas tenho uma função que abre esse formulário Unit4.pas e recebe o valor que foi selecionado nele, retornando o valor para onde a função foi chamada, porem no formulário Unit4.pas eu utilizo outras funções da Unit1.pas;
A principio estou dividindo essa unit de funções em várias units dentro dos pacotes especificos, mas não vejo essa solução como a melhor, ainda acredito que tenha uma outra forma de fazer isso, só não conheço... hehehe...
Caso voce tenha alguma idéia melhor, fico grato.
Gostei + 0
02/10/2008
Emerson Nascimento
Gostei + 0
02/10/2008
Albervan
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)