Fórum Problemas com form em BPL #270987
04/03/2005
0
Caros colegas,
Estou tentando implementar a solução de modularização com BPL, porém estou tendo alguns problemas:
[list:1d39cdbf1b] Quando utilizo a opção Build With Runtime Packages, consigo acessar o form normalmente. Porém tenho q mandar todas as outras BPL´s que uso no sistema?? De todos os outros componentes?? Não tem como eu mandar só a BPL dos forms q estou utilizando?? [/list:u:1d39cdbf1b]
[list:1d39cdbf1b] Quando eu não utilizo a opção acima e crio uma unit na BPL com função para abrir os forms e exporto essa função, também funciona... aparentemente, pois se eu colocar um ClientData ou um SimpleDataSet num form, mesmo q eles não estejam ligados a nada e nem ativos quando peço pra executar esse form dá um erro de Access Violation. Alguém sabe o pq disto?? [/list:u:1d39cdbf1b]
Será q se eu usar uma DLL vou ter todos estes problemas?? Alguém tem outra sugestão pra q eu consiga modularizar minha aplicação??
Desde já agradeço a todos.
Estou tentando implementar a solução de modularização com BPL, porém estou tendo alguns problemas:
[list:1d39cdbf1b] Quando utilizo a opção Build With Runtime Packages, consigo acessar o form normalmente. Porém tenho q mandar todas as outras BPL´s que uso no sistema?? De todos os outros componentes?? Não tem como eu mandar só a BPL dos forms q estou utilizando?? [/list:u:1d39cdbf1b]
[list:1d39cdbf1b] Quando eu não utilizo a opção acima e crio uma unit na BPL com função para abrir os forms e exporto essa função, também funciona... aparentemente, pois se eu colocar um ClientData ou um SimpleDataSet num form, mesmo q eles não estejam ligados a nada e nem ativos quando peço pra executar esse form dá um erro de Access Violation. Alguém sabe o pq disto?? [/list:u:1d39cdbf1b]
Será q se eu usar uma DLL vou ter todos estes problemas?? Alguém tem outra sugestão pra q eu consiga modularizar minha aplicação??
Desde já agradeço a todos.
Weverton
Curtir tópico
+ 0
Responder
Posts
04/03/2005
Massuda
Porém tenho q mandar todas as outras BPL´s que uso no sistema?? De todos os outros componentes?? Não tem como eu mandar só a BPL dos forms q estou utilizando??
Depois de dar um [b:d1f9bc1a70]Project/Build[/b:d1f9bc1a70], use [b:d1f9bc1a70]Project/Information[/b:d1f9bc1a70] para saber quais packages seu programa está utilizando. Uma alternativa seria usar o [url=http://www.dependencywalker.com/]Dependency Walker[/url] para fazer isso.Por hábito, eu mantenho a lista de runtime packages utilizados pelo projeto ([b:d1f9bc1a70]Project/Options[/b:d1f9bc1a70], aba [b:d1f9bc1a70]Packages[/b:d1f9bc1a70]) com o menor número de packages que for possível.
...crio uma unit na BPL com função para abrir os forms e exporto essa função, também funciona... aparentemente, pois se eu colocar um ClientData ou um SimpleDataSet num form, mesmo q eles não estejam ligados a nada e nem ativos quando peço pra executar esse form dá um erro de Access Violation. Alguém sabe o pq disto??
Não sei se essa é a explicação, mas sei que o Delphi usa algumas variáveis globais relacionadas com forms e data modules. O problema é que se você tem um executável e uma BPL/DLL, essas variáveis globais passam a ser duas, uma do executável e outra da BPL/DLL. Se você usa os runtime packages da Borland, é garantido que essas variáveis globais sejam compartilhadas entre o executável e as BPLs/DLLs.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)