Bom dia Tiago. Como vc parece ser um cara esforçado, vou te mandar mais algumas coisas que vc deva considerar em sua app =)
Pra utilizar uma tela de splash, eu faço sempre algumas recomendações: # Tela de splash não foi criada só pra enfeitar a aplicação. Tem gnt que coloca até um TTimer só pra deixar ela um tempo aberta =X - O que deixa teu programa um tempo parado inutilmente sendo que ele está livre pra ser iniciado. E aplicação boa é aplicação rápida, que não enrola em nada o usuário. # Ela deve ser criada e continuar sendo exibida durante o tempo que sua aplicação apresenta um processamento ANTERIOR à criação do Form Principal, ou seja, pro usuário não pensar que a aplicação travou e executar o programa umas 10 ou 11 vezes ou matar ela umas 10 ou 20 vezes no gerenciador de tarefas xD~ # Pra que ele seja eficiente, basta ser simples. Basicamente, existem 2 tipos de splash: Statico - aquela que só mostra uma imagem até o programa iniciar (Ex.: Delphi 1/2/3/4/5/6/7 IDE). Dinâmico - aquela que mostra a imagem e o que está sendo carregado na aplicação (ex.: BDS 2005/2006 IDE) Com base nisso, vc escolhe o modelo que melhor se adapte à sua aplicação ou então que vc goste mais, criando sempre a mesma como um form normal (não mdi, dialog ou outro tipo qq). Para o tipo estático somente o form contendo o TImage basta. Já ára o tipo dinamico, vc pode incluir labels, icones e todo o tipo de recurso disponivel na sua criatividade para indicar ao usuário o que está sendo processado naquele momento. Feita sua Splash Screen, o código antigo ficaria da seguinte forma (considerando que o form tenha o nome frmSplash e que estou utilizando um exemplo de splash dinâmico utilizando apenas um label neste form pra indicar o que está sendo realizado durante o LOAD do programa): try frmSplash := TfrmSplash.Create(nil); with frmSplash do begin Show; // digamos que eu tenha que criar um DataModule agora... então um splash seria útil, pois o tempo de criação pode variar de micro p/ micro. lblStatus.Caption := 'Carregando origem de dados...'; Update; Application.CreateForm(TdtmPrincipal, dtmPrincipal); end; try frmLogin := TfrmLogin.Create(nil); with frmLogin do begin frmSplash.Hide; // não esquecer de esconder a janela de splash ao exibir qualquer outra inicialmente ShowModal; if Logado then // se não for definido a propriedade logado no form de login, nem entra no sistema, sai direto =) Application.CreateForm(TfrmPrincipal, frmPrincipal); end; finally FreeAndNil(frmLogin); end; finally FreeAndNil(frmSplash); end; Application.Run; Acho que basicamente é isso. O Splash é um recurso simples que pode ser muito bem utilizado dependendo da necessidade da aplicação ou da criatividade do programador, desde que não seja pra ficar fazendo graça na interface da aplicação (esta é a minha opinião). Ah, eu estou digitando este código direto no email, rs.. não compilei.. então pode haver erros huehuehuehe xD Mas mesmo assim a idéia é que serve =) Qualquer outra dúvida estamos aeh []'s Eric D. - Desenvolvimento e Soluções de Tecnologia [EMAIL PROTECTED] "Talk is cheap, show me the code..." ----- Original Message ----- From: Tiago de Assis Pimenta To: delphi-br@yahoogrupos.com.br Sent: Tuesday, November 07, 2006 5:48 PM Subject: RES: [delphi-br] Tela de Login Como fica a tela de splash Eric ?!?!?! Tiago de Assis Pimenta MSN: <mailto:[EMAIL PROTECTED]> [EMAIL PROTECTED] SKYPE: tiagopimenta_skype _____ De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de Eric D. Enviada em: terça-feira, 7 de novembro de 2006 16:30 Para: delphi-br@yahoogrupos.com.br Assunto: Re: [delphi-br] Tela de Login Isso vc pode resolver direto editando o seu .dpr. Ex.: Digamos que tenho 2 forms: frmPrincipal e frmLogin. Digamos que meu frmLogin tenha uma propriedade (que eu criei e eu vou definir dentro de uma função de verificação de usuário neste form) que indique se conseguiu ou não logar no sistema (Boolean). Então ficaria: Application.Initialize; try frmLogin := TfrmLogin.Create(nil); with frmLogin do begin ShowModal; if Logado then // se não for definido a propriedade logado no form de login, nem entra no sistema, sai direto =) Application.CreateForm(TfrmPrincipal, frmPrincipal); end; Application.Run; finally FreeAndNil(frmLogin); end; Eu sempre faço isso, fora o splash que vai antes de tudo isso (saindo o Application.Initialize) e a atualização do mesmo =)) Ps.: Pra usar FreeAndNil, não esqueça de declarar SysUtils no uses dentro do .DPR =) Espero ter ajudado []'s Eric D. - Desenvolvimento e Soluções de Tecnologia [EMAIL PROTECTED] "Talk is cheap, show me the code..." ----- Original Message ----- From: Tiago de Assis Pimenta To: delphi-br@yahoogrupos.com.br Sent: Tuesday, November 07, 2006 2:48 PM Subject: [delphi-br] Tela de Login Galera, preciso fazer uma tela de login para o meu sistema ... o formulário principal é MDI e o restante são todos MDIChild. Dai vem os problemas ... quando ponho o formulário de login como Main Form ... ele não cria o formulário principal, dai tentei por para criar o frm de login para se criar no onactive do frmprincipal ele não "Fecha" o do login... e se por no oncreate ele aparece por baixo do frmprincipal. Alguem tem alguma dica ?!?! Ou se tiver um sistema com um frmlogin e pudesse me enviar ficaria grato Tiago de Assis Pimenta MSN: <mailto:[EMAIL PROTECTED]> [EMAIL PROTECTED] SKYPE: tiagopimenta_skype [As partes desta mensagem que não continham texto foram removidas] -- <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> <*> Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages <*> Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html