Cara, não acho que o problema seja a quantidade de units mas sim o tamanho
do executavel.
tivemos esse mesmo problema aqui quando o executavel chegava a mais de 14mb;
Nao achamos solucoes e a unica forma foi dividir o programa em BPLs. Ai
resolveu...
Me parece que o windows 98 nao consegue gerenciar o .exe com esse tamanho...


Segue a dica que pra gente funcionou. Pesquisa sobre BPLs... funciona
legalzinho e eh facil de implementar..



 
Márcio Cristiano Tenreiro
Programador Pleno
Universidade de Marília/SP
(14) 2105-4129
-------Mensagem original-------
 
De: Vinicius Barreira
Data: 01/10/2007 13:43:53
Para: [EMAIL PROTECTED];  delphi-br@yahoogrupos.com.br
Cc: [EMAIL PROTECTED];  [EMAIL PROTECTED]
Assunto: [delphi-br] Executável com mais de 500 units não roda no Windows 98
 

Olá pessoal;


Meu sistema estava divido em módulos; eram os módulos hospedagem,
financeiro, estoque, contábil, marketing, eventos, estatística,
manutenção e configuradores. 

Agora eu juntei tudo num único executável. Eu não carrego todos os forms
de uma só vez, carrego os forms dinamicamente.

O unico módulo que ficou de fora é o de emissão de ECF, que continua
independente. Somente 10% dos meus clientes usam ECF (hotéis e pousadas)
e assim não preciso ficar vinculando DLL de fabricante de ECF para os
outros 90%. Além disso a idéia é homologar na Bahia e Minas e congelar o
módulo ECF.

Só que deu um problema: passou a não rodar no Windows 98. Ao executar,
dá mensagem de que “o programa parece estar corrompido”. No Windows XP e
Vista, funciona normal.

Esse “grande” executável ficou com 20mb de tamanho.

Fui tirando módulos, e descobri que posso manter até 500 units
vinculadas ao exe, que roda no Windows 98; acima disso passa a não
rodar. Será que existe limite de units num executável no Windows 98 ?

Não carrego automaticamente todas as units, carrego previamente somente
quatro units, que são um datamodule e forms com funções. Eu carrego e
descarrego os outros mil forms conforme o usuário vai entrando e saindo
nas telas.

Esses mil forms / units, eu carrego os dinamicamente da seguinte forma:

FrMeuForm := TFrMeuForm.Create(Self);

FrMeuForm.ShowModal;

FreeAndNil(FrMeuForm);

Meu problema é que o sistema total tem quase mil units. Os clientes
gostaram da idéia de centralizar tudo num único executável ao invés de
ter vários. E tenho vários clientes com Windows 98. Agora estou numa
situação complicada.

Vocês tem alguma dica pra me dar ? 

Vinicius Barreira
Delphi 7 / Firebird / DbExpress
São Bernardo do Campo
Software Para Hotéis / Pousadas / Moteis

[As partes desta mensagem que não continham texto foram removidas]


 
 

[As partes desta mensagem que não continham texto foram removidas]

Responder a