Splash
Olá amigos, blz? Tenho uma dúvida em relação à tela de splash. Qdo ela é executada, teoricamente deveria fechar no momento em que a tela principal do sistema abre. Pois bem, qdo eu minimizo a tela principal, lá está ela, na verdade ela não está desaparecendo, fica atrás da principal.
Gostaria de saber se é dessa maneira que funciona ou se estou errando em algum lugar do código fonte. As linhas de código que utilizei são:
{$R *.res}
begin
Application.Initialize;
frmSplash := TfrmSplash.Create(Application);
frmSplash.Show;
frmSplash.Refresh;
Sleep(1000);
Application.CreateForm(TdmConexao, dmConexao);
...
FreeAndNil(frmSplash);
Application.Run;
Já segui algumas sugestões, mas não deram certo.
Fico no aguardo.
Um abraço a todos,
Rogério
Gostaria de saber se é dessa maneira que funciona ou se estou errando em algum lugar do código fonte. As linhas de código que utilizei são:
{$R *.res}
begin
Application.Initialize;
frmSplash := TfrmSplash.Create(Application);
frmSplash.Show;
frmSplash.Refresh;
Sleep(1000);
Application.CreateForm(TdmConexao, dmConexao);
...
FreeAndNil(frmSplash);
Application.Run;
Já segui algumas sugestões, mas não deram certo.
Fico no aguardo.
Um abraço a todos,
Rogério
Roger1976
Curtidas 0
Respostas
Tnaires
25/11/2005
Olá
Tente substituir o
por
Abraços
Tente substituir o
FreeAndNil(frmSplash);
por
frmSplash.Release;
Abraços
GOSTEI 0
Roger1976
25/11/2005
Tarso, eu fiz o teste, porém não deu certo. Tem um procedimento que ao abrir a tela de MOVIMENTAÇÃO, automaticamente minimiza a tela principal. Nesse intervalo, a tela de splash aparece e em seguida desaparece. Acho que deverei fazer isso de outra forma, caso tenha uma sugestão, testarei.
Obrigado pela atenção.
Obrigado pela atenção.
GOSTEI 0
Aspirante
25/11/2005
Olha, a minha tela de Splash não fica não cara. Só que meu código é bem diferentinho. Tente esse código. Espero que possa ajudar:
Primero pegue o formulário que é o Splash e no menu Project - Options mude ele pra Available forms. Aí, no ViewSource escreva:
Tá, ainda no View Source, vai ter os códigos que inicializam os formulários né. Depois deles no final coloque:
Espero que possa ter ajudado.
Flw.
Primero pegue o formulário que é o Splash e no menu Project - Options mude ele pra Available forms. Aí, no ViewSource escreva:
{$R *.res}
begin
SplashForm := TSplashForm.Create(Application);
SplashForm.Show;
SplashForm.BorderStyle:=bsnone;
SplashForm.Update;
Application.Title := ´Programa´;
Application.Initialize;Tá, ainda no View Source, vai ter os códigos que inicializam os formulários né. Depois deles no final coloque:
SplashForm.Hide;
SplashForm.Free;
Application.Run;
Espero que possa ter ajudado.
Flw.
GOSTEI 0
Roger1976
25/11/2005
Kra, testei o seu código, o problema é que mesmo assim, se vc arrastar a tela o splash vai estar lá. Na tela principal, tem um menu chamado MOVIMENTAÇÕES, e uma opção chamada ENTRADA/SAÍDA, que é onde acesso a tela de movimentação de componentes de informática.
Dê uma olhada no código abaixo que eu utilizei:
try
frmPrincipal.WindowState := wsMinimized;
frmMovimentacao := TfrmMovimentacao.Create(self);
frmMovimentacao.ShowModal;
finally
FreeAndNil(frmMovimentacao);
end;
No intervalo de uma tela para outra, o splash aparece, veja que não a ação de minimizar a tela principal e exibir a tela de movimentação é feita pelo sistema, e não pelo usuário. Talvez Tarso tenha alguma coisa errada no código acima. Um detalhe, estou usando o Delphi 2005, eu não sei se isso tem alguma coisa a ver.
Kra, valeu pela força, se puder faça um teste neste código, caso veja algo de errado, é só me avisar.
Um abraço,
Dê uma olhada no código abaixo que eu utilizei:
try
frmPrincipal.WindowState := wsMinimized;
frmMovimentacao := TfrmMovimentacao.Create(self);
frmMovimentacao.ShowModal;
finally
FreeAndNil(frmMovimentacao);
end;
No intervalo de uma tela para outra, o splash aparece, veja que não a ação de minimizar a tela principal e exibir a tela de movimentação é feita pelo sistema, e não pelo usuário. Talvez Tarso tenha alguma coisa errada no código acima. Um detalhe, estou usando o Delphi 2005, eu não sei se isso tem alguma coisa a ver.
Kra, valeu pela força, se puder faça um teste neste código, caso veja algo de errado, é só me avisar.
Um abraço,
GOSTEI 0
Aspirante
25/11/2005
Cara não to entendendo não. Porque no meu funciona sim a tela de Splash. Mesmo movimentando a tela principal, a tela de Splash não está lá. Tem certeza de que você fez os procedimentos certos? Bom, o SplashForm tem que estar no Available forms e após a chamada dos formulários, SplashForm.Hide, SplashForm.Free.
Sinceramente, acho que você está com algum problema em fazer o código, porque não vejo erro, ele oculta e libera o Splash.
Uhmm. Não sei se é o 2005 que dá problema não, mas eu uso o 6.
Mas se continuar dando problema cara, tenta fazer:
SplashForm.Width := 1
SplashForm.Height := 1
SplashForm.Left := 10000
Hehehe. É meio sem noção mas pode até servir.
Testa aí.
Flw.
Sinceramente, acho que você está com algum problema em fazer o código, porque não vejo erro, ele oculta e libera o Splash.
Uhmm. Não sei se é o 2005 que dá problema não, mas eu uso o 6.
Mas se continuar dando problema cara, tenta fazer:
SplashForm.Width := 1
SplashForm.Height := 1
SplashForm.Left := 10000
Hehehe. É meio sem noção mas pode até servir.
Testa aí.
Flw.
GOSTEI 0
Tnaires
25/11/2005
Olá
Essa é a maneira que eu codifico o Splash:
Compare com o seu código e cite as diferenças para nós.
Abraços
Essa é a maneira que eu codifico o Splash:
Application.Initialize; FrmSplash := TFrmSplash.Create(Application); with FrmSplash do begin Show; Update; end; // O Form principal eu crio depois do Splash: Application.CreateForm(TFrmPrincipal, FrmPrincipal); Application.CreateForm(TDtmPrincipal, DtmPrincipal); // No meu caso, há um formulário de login que eu crio agora: Application.CreateForm(TFrmSenhaUsuario, FrmSenhaUsuario); FrmSenhaUsuario.ShowModal; // Agora eu destruo o Splash: FrmSplash.Release; Application.Run;
Compare com o seu código e cite as diferenças para nós.
Abraços
GOSTEI 0
Roger1976
25/11/2005
Amigos, eu refiz o código e agora funcionou. Sinceramente, eu não sei onde estava o erro, mas o que importa é que funcionou... Eu ainda estou iniciando, e estou apanhando muito, mas estou aprendendo muito tbém.
Valeu mesmo pela ajuda de vcs...
Abraços,
Valeu mesmo pela ajuda de vcs...
Abraços,
GOSTEI 0