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

 

Responder a