Tela de splash
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
Curtidas 0
Respostas
Bruno Belchior
05/10/2005
tente isso: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]...
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;
GOSTEI 0
Paulo
05/10/2005
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.
GOSTEI 0
Tnaires
05/10/2005
Olá
Faltou vc colocar a seguinte instrução, logo depois da chamada ao Show:
Faltou vc colocar a seguinte instrução, logo depois da chamada ao Show:
FrmSplash.Update
GOSTEI 0
Armando.boza
05/10/2005
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.
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.
GOSTEI 0
Emerson Nascimento
05/10/2005
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;
GOSTEI 0
Vagner.oliveira
05/10/2005
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]
GOSTEI 0
Armando.boza
05/10/2005
[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 ...
GOSTEI 0