Fórum Tela de splash #298511

05/10/2005

0

Minhas telas de splash, que eu faço, dependendo da velocidade do micro, elas nem aparecem. Como fazer uma tela, mas que possa ter uma interação com o usuário, apenas para efeito visual. Claro que isso, não tem nada a ver com o desempenho do sistema, mas da um ar bem profissional ao nosso software. Na minha máquina, só pisca e já entra. Como fazer diferente? Eu faço assim:

frmSplash:=TfrmSplash.Create(Application); frmSplash.Show; Application.Initialize; try Application.CreateForm(TfrmM_Principal, frmM_Principal); Application.CreateForm(TfrmM_Cadastro, frmM_Cadastro); Application.CreateForm(TDm, Dm); Application.CreateForm(TfrmCadFornec, frmCadFornec); Application.CreateForm(TfrmVenda, frmVenda); Application.CreateForm(TfrmCadBanco, frmCadBanco); Application.CreateForm(TfrmCadProduto, frmCadProduto); Application.CreateForm(TfrmCadGrupo, frmCadGrupo); Application.CreateForm(TfrmCadNf, frmCadNf); Application.CreateForm(TfrmCadItens, frmCadItens); Application.CreateForm(TfrmCadVendedor, frmCadVendedor); Application.CreateForm(TfrmSplash, frmSplash); finally frmSplash.Close; end; Application.Run;



Paulo

Paulo

Responder

Posts

05/10/2005

Bruno Belchior

tente isso:
frmSplash:=TfrmSplash.Create(Application); 
frmSplash.Show; 
Application.Initialize; 
try 
Application.CreateForm(TfrmM_Principal, frmM_Principal); 
Application.CreateForm(TfrmM_Cadastro, frmM_Cadastro); 
Application.CreateForm(TDm, Dm); 
Application.CreateForm(TfrmCadFornec, frmCadFornec); 
Application.CreateForm(TfrmVenda, frmVenda); 
Application.CreateForm(TfrmCadBanco, frmCadBanco); 
Application.CreateForm(TfrmCadProduto, frmCadProduto); 
Application.CreateForm(TfrmCadGrupo, frmCadGrupo); 
Application.CreateForm(TfrmCadNf, frmCadNf); 
Application.CreateForm(TfrmCadItens, frmCadItens); 
Application.CreateForm(TfrmCadVendedor, frmCadVendedor); 
Application.CreateForm(TfrmSplash, frmSplash); 
finally 
Sleep(2000); // Insira esta linha
frmSplash.Close; 
end; 
Application.Run;
Quanto mais vc aumentar o parâmetro do procedimento, mais tempo ele ficará *esperando*, lembre-se que o procedimento citado acima esta na unidade [b:e05beed395]SysUtils[/b:e05beed395]...


Responder

Gostei + 0

05/10/2005

Paulo

Fiz, com relação ao tempo de espera, funciona, é isso mesmo que eu quero, grato. Mas tem um porem, não me aparece nada(a imagem), somente o contorno do form, com fundo clBtnFace. Tirei o TImge, coloquei vários labels dentro de várias cores, sem nenhum componente, e nada, continua so o formato do form. Aumentei para 1 minuto(com teste) e também não me apareceu.


Responder

Gostei + 0

05/10/2005

Tnaires

Olá
Faltou vc colocar a seguinte instrução, logo depois da chamada ao Show:
FrmSplash.Update



Responder

Gostei + 0

06/10/2005

Armando.boza

eu sempre faço assim:

1- Crio um form para ser o Splash
2- Acrescento um Ttimer com as opções ENABLED = false e INTERVAL = 3000
3- No evento onshow do splash coloco TIMER1.enabled := true;
4- Dê 2 cliques no timer1 e coloque CLOSE no evento.
5- No form principal coloque assim no evento ONCREATE: FRMSplash.showmodal;

Ele ficará na tela pelo tempo colocado na opção INTERVAL, neste caso 3000 = 3 segundos.


Responder

Gostei + 0

06/10/2005

Emerson Nascimento

seguindo o exemplo do nosso colega Bruno, eu tiraria a linha imediatamente anterior ao comando finally

Application.Initialize; 
frmSplash:=TfrmSplash.Create(Application); 
frmSplash.Show; 
frmSplash.Update;
try 
  Application.CreateForm(TfrmM_Principal, frmM_Principal); 
  Application.CreateForm(TfrmM_Cadastro, frmM_Cadastro); 
  Application.CreateForm(TDm, Dm); 
  Application.CreateForm(TfrmCadFornec, frmCadFornec); 
  Application.CreateForm(TfrmVenda, frmVenda); 
  Application.CreateForm(TfrmCadBanco, frmCadBanco); 
  Application.CreateForm(TfrmCadProduto, frmCadProduto); 
  Application.CreateForm(TfrmCadGrupo, frmCadGrupo); 
  Application.CreateForm(TfrmCadNf, frmCadNf); 
  Application.CreateForm(TfrmCadItens, frmCadItens); 
  Application.CreateForm(TfrmCadVendedor, frmCadVendedor); 
  Application.CreateForm(TfrmSplash, frmSplash); <-- essa linha é desnecessária
finally 
  Sleep(2000); // Insira esta linha 
  frmSplash.Close; 
end; 
Application.Run;



Responder

Gostei + 0

19/08/2006

Vagner.oliveira

eu sempre faço assim: 1- Crio um form para ser o Splash 2- Acrescento um Ttimer com as opções ENABLED = false e INTERVAL = 3000 3- No evento onshow do splash coloco TIMER1.enabled := true; 4- Dê 2 cliques no timer1 e coloque CLOSE no evento. 5- No form principal coloque assim no evento ONCREATE: FRMSplash.showmodal; Ele ficará na tela pelo tempo colocado na opção INTERVAL, neste caso 3000 = 3 segundos.


gostaria de citar que no evento ONCREATE o comando correto é:
FRMSplash.[b:5aa3e9104b][color=red:5aa3e9104b]hide[/b:5aa3e9104b][/color:5aa3e9104b]


Responder

Gostei + 0

20/08/2006

Armando.boza

[quote:4864ced9de=´armando.boza´]eu sempre faço assim: 1- Crio um form para ser o Splash 2- Acrescento um Ttimer com as opções ENABLED = false e INTERVAL = 3000 3- No evento onshow do splash coloco TIMER1.enabled := true; 4- Dê 2 cliques no timer1 e coloque CLOSE no evento. 5- No form principal coloque assim no evento ONCREATE: FRMSplash.showmodal; Ele ficará na tela pelo tempo colocado na opção INTERVAL, neste caso 3000 = 3 segundos.


gostaria de citar que no evento ONCREATE o comando correto é:
FRMSplash.[b:4864ced9de][color=red:4864ced9de]hide[/b:4864ced9de][/color:4864ced9de][/quote:4864ced9de]


Pq FRMSplash.[b:4864ced9de][color=red:4864ced9de]hide[/b:4864ced9de][/color:4864ced9de] ???

Se eu vou mostrar o form de splash tem que ser showmodal mesmo ... se eu der um hide ele esconde .... vc deve estar enganado ou nao entendeu direito minha dica ...


Responder

Gostei + 0

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

Aceitar