GARANTIR DESCONTO

Fórum Splash com prograss (verdadeiro) ...como faço ? #278252

20/04/2005

0

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


Guilherme

Guilherme

Responder

Posts

20/04/2005

Jrinfo2005

cara, vê se essa dica te ajuda.... tirei de um arquivo de dicas.

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


Responder

Gostei + 0

20/04/2005

Guilherme

so meio fraco em programaçlao ainda sera q nao da pra explicar ??? porq nao intendi quase nada


Responder

Gostei + 0

20/04/2005

Jrinfo2005

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


Responder

Gostei + 0

20/04/2005

Rjun

o pregresso real da criaçao do form


O que você quer dizer com isso ?


Responder

Gostei + 0

20/04/2005

Guilherme

é 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 !!!!


Responder

Gostei + 0

20/04/2005

Jrinfo2005

Posta o código q eu te pedi, blz ?


Responder

Gostei + 0

20/04/2005

Rjun

é 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.


Responder

Gostei + 0

20/04/2005

Massuda

...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é?


Responder

Gostei + 0

20/04/2005

Guilherme

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


Responder

Gostei + 0

20/04/2005

Edilcimar

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


Responder

Gostei + 0

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

Aceitar