Splash com prograss (verdadeiro) ...como faço ?
Ja procurei em varios lugares como fazer um splash com progress so q na maioria dos sites so tem como faz um falso (controlado por timer) gostaria de saber como q faço um q realmente mostre o pregresso real da criaçao do form !!!
valeu
valeu
Guilherme
Curtidas 0
Respostas
Jrinfo2005
20/04/2005
cara, vê se essa dica te ajuda.... tirei de um arquivo de dicas.
Espero ter ajudado
program Granja;
uses
Forms,
Principalf in ´Principalf.pas´ ,
Areaf in ´Areaf.pas´ ,
Galpaof in ´Galpaof.pas´ ,
Clientef in ´Clientef.pas´ ,
Saidaf in ´Saidaf.pas´ ,
Relatoriof in ´Relatoriof.pas´ ,
baixaf in ´baixaf.pas´ ,
Mortalidadef in ´Mortalidadef.pas´ ,
manubaixaf in ´manubaixaf.pas´ ,
ConsEstoquef in ´ConsEstoquef.pas´ ,
sobref in ´sobref.pas´ ,
ImpRelatoriof in ´ImpRelatoriof.pas´ ,
Consultasf in ´Consultasf.pas´ ,
ImpEntradaf in ´ImpEntradaf.pas´ ,
PassWord in ´PassWord.pas´ ,
ImpMortalidadef in ´ImpMortalidadef.pas´ ,
ImpSaidaf in ´ImpSaidaf.pas´ ,
ImpClientesf in ´ImpClientesf.pas´ ,
Apres2f in ´Apres2f.pas´ ,
Entradaf in ´Entradaf.pas´ ;
{$R *.RES}
var
i:shortint;
maximo:shortint=0;
divisor:shortint=19;
begin
Application.Initialize;
Application.Title := ´GSJ2 - LloydSoft´;
with TApres.Create(nil) do
try
Gauge1.MaxValue:=100;
Show;
Update;
Panel1.caption:=´Criando Tela: Principal´;
Panel1.Repaint;
Application.CreateForm(TPrincipal, Principal);
for i:=1 to (maximo+(100 div divisor)) do
begin
gauge1.progress:=i;
maximo:=i;
end;
Panel1.caption:=´Criando Tela: Cadastro de Entradas´;
Panel1.Repaint;
Application.CreateForm(TEntrada, Entrada);
for i:=maximo to (maximo+(100 div divisor)) do
begin
gauge1.progress:=i;
maximo:=i;
end;
Panel1.caption:=´Criando Tela: Cadastro de Mortalidade´;
Panel1.Repaint;
Application.CreateForm(TImpMortalidade, ImpMortalidade);
for i:=maximo to (maximo+(100 div divisor)) do
begin
gauge1.progress:=i;
maximo:=i;
end;
Panel1.caption:=´Criando Tela: Impressão de Saida´;
Panel1.Repaint;
Application.CreateForm(TImpSaida, ImpSaida);
for i:=maximo to (maximo+(100 div divisor)) do
begin
gauge1.progress:=i;
maximo:=i;
end;
Panel1.caption:=´Criando Tela: Impressão de Clientes´;
Panel1.Repaint;
Application.CreateForm(TImpClientes, ImpClientes);
for i:=maximo to (maximo+(100 div divisor)) do
begin
gauge1.progress:=i;
maximo:=i;
end;
Panel1.caption:=´Criando Tela: Password´;
Panel1.Repaint;
Application.CreateForm(TPasswordDlg, PasswordDlg);
for i:=maximo to (maximo+(100 div divisor)) do
begin
gauge1.progress:=i;
maximo:=i;
end;
Panel1.caption:=´Criando Tela: Consultas´;
Panel1.Repaint;
Application.CreateForm(TConsultas, Consultas);
for i:=maximo to (maximo+(100 div divisor)) do
begin
gauge1.progress:=i;
maximo:=i;
end;
Panel1.caption:=´Criando Tela: Impressão de Entradas´;
Panel1.Repaint;
Application.CreateForm(TImpEntrada, ImpEntrada);
for i:=maximo to (maximo+(100 div divisor)) do
begin
gauge1.progress:=i;
maximo:=i;
end;
Panel1.caption:=´Criando Tela: Impressão de Relatório´;
Panel1.Repaint;
Application.CreateForm(TImpRelatorio, ImpRelatorio);
for i:=maximo to (maximo+(100 div divisor)) do
begin
gauge1.progress:=i;
maximo:=i;
end;
Panel1.caption:=´Criando Tela: Estoque´;
Panel1.Repaint;
Application.CreateForm(TConsEstoque, ConsEstoque);
for i:=maximo to (maximo+(100 div divisor)) do
begin
gauge1.progress:=i;
maximo:=i;
end;
Panel1.caption:=´Criando Tela: Sobre´;
Panel1.Repaint;
Application.CreateForm(TSobre, Sobre);
for i:=maximo to (maximo+(100 div divisor)) do
begin
gauge1.progress:=i;
maximo:=i;
end;
Panel1.caption:=´Criando Tela: Cadastro de Entradas´;
Panel1.Repaint;
Application.CreateForm(TArea, Area);
for i:=maximo to (maximo+(100 div divisor)) do
begin
gauge1.progress:=i;
maximo:=i;
end;
Panel1.caption:=´Criando Tela: Cadastro de Galpão´;
Panel1.Repaint;
Application.CreateForm(TGalpao, Galpao);
for i:=maximo to (maximo+(100 div divisor)) do
begin
gauge1.progress:=i;
maximo:=i;
end;
Panel1.caption:=´Criando Tela: Cadastro de Clientes´;
Panel1.Repaint;
Application.CreateForm(TCliente, Cliente);
for i:=maximo to (maximo+(100 div divisor)) do
begin
gauge1.progress:=i;
maximo:=i;
end;
Panel1.caption:=´Criando Tela: Cadastro de Saídas´;
Panel1.Repaint;
Application.CreateForm(TSaida, Saida);
for i:=maximo to (maximo+(100 div divisor)) do
begin
gauge1.progress:=i;
maximo:=i;
end;
Panel1.caption:=´Criando Tela: Relatório´;
Panel1.Repaint;
Application.CreateForm(TRelatorio, Relatorio);
for i:=maximo to (maximo+(100 div divisor)) do
begin
gauge1.progress:=i;
maximo:=i;
end;
Panel1.caption:=´Criando Tela: Baixa´;
Panel1.Repaint;
Application.CreateForm(TBaixa, Baixa);
for i:=maximo to (maximo+(100 div divisor)) do
begin
gauge1.progress:=i;
maximo:=i;
end;
Panel1.caption:=´Criando Tela: Mortalidade´;
Panel1.Repaint;
Application.CreateForm(TMortalidade, Mortalidade);
for i:=maximo to (maximo+(100 div divisor)) do
begin
gauge1.progress:=i;
maximo:=i;
end;
Panel1.caption:=´Criando Tela: Manutenção´;
Panel1.Repaint;
Application.CreateForm(TManubaixa, Manubaixa);
for i:=maximo to (maximo+(100 div divisor)) do
begin
gauge1.progress:=i;
maximo:=i;
end;
Panel1.caption:=´Finalizando´;
Panel1.Repaint;
finally
Free;
end;
Application.Run;
end.
Espero ter ajudado
GOSTEI 0
Guilherme
20/04/2005
so meio fraco em programaçlao ainda sera q nao da pra explicar ??? porq nao intendi quase nada
GOSTEI 0
Jrinfo2005
20/04/2005
posta o codigo onde é iniciada a aplicação q eu vou tentar ver o q eu posso fazer, blz ? Só q eu não garanto hj pq daqui a pouco eu tenho q ir para a facul !
Abraços
Abraços
GOSTEI 0
Rjun
20/04/2005
o pregresso real da criaçao do form
O que você quer dizer com isso ?
GOSTEI 0
Guilherme
20/04/2005
é q mostre realmente o progresso da criaçao do forma devido o tamanho (uns maiores outros menores demoram mais q os outros)e q nao seja controlado por timers !!!!
GOSTEI 0
Jrinfo2005
20/04/2005
Posta o código q eu te pedi, blz ?
GOSTEI 0
Rjun
20/04/2005
é q mostre realmente o progresso da criaçao do forma devido o tamanho (uns maiores outros menores demoram mais q os outros)e q nao seja controlado por timers !!!!
E isso é possível ? Se for, também quero saber.
Eu acho que o mais próximo que da pra chegar e o código que o JrInfo2005 postou.
Eu particularmente, não crio todo os forms no inicio da aplicação. Só os crio quando vou utiliza-lós.
GOSTEI 0
Massuda
20/04/2005
...gostaria de saber como q faço um q realmente mostre o pregresso real da criaçao do form !!!
Para ter isso, você teria de saber de antemão quanto tempo demoraria para criar o form e isso, infelizmente, não dá para saber, pois depende da máquina onde o programa está sendo executado.Existem situações piores. Por exemplo, o tempo gasto para criar um data modules que abre tabelas em um BD SQL depende do tempo gasto para comunicar com o servidor SQL mais o tempo do servidor SQL executar as tarefas e, novamente, isso não tem como ser conhecido de antemão.
O que dá para fazer é no processo de criação dos seus forms/data moudles você ir atualizando o progress bar, mas isso vai refletir um critério arbitrário seu de mostrar o progresso da operação. Eu tenho um programa que vai até 80¬ num instante e demora uma eternidade para terminar os 20¬ restantes... tudo porque esses 20¬ restantes fazem conexão com um BD SQL.
Outro truque é fazer como o Windows faz... mostrar uma barra com timer, mas isso você já encontrou por aí, né?
GOSTEI 0
Guilherme
20/04/2005
certo intao alguem poderia me explicar o codigo postado ai !!! porq eu realmento nao intendi qy]uase nada
valew
bom feriado pra todos vc´s
valew
bom feriado pra todos vc´s
GOSTEI 0
Edilcimar
20/04/2005
ele contou a quantidade de forms que seriam criados, depois colocou o valor total = 100 que é 100¬ depois dividiu o 100 pela quantidade que forms, então a cada form criado ele incrementou o a barra
GOSTEI 0