Mostrar Caption Somente Depois do Form Ativo
Quero fazer o seguinte:
Mostrar um form na tela com seu caption = ´´ e, em seguida, mostrar o caption com algo escrito (´caption deste form´), ou seja, preciso que o usuário perceba que o caption estava em branco em determinado momento e em seguida tem alguma coisa escrita.
Minha dúvida é em que momento (evento) eu faço isso.
Tentei no onShow e OnActivate do form, mas aí não dá aquele tempo pro usuário perceber a mudança do caption = ´´ para caption = ´Caption deste form´.
Consegui me fazer entender?
Podes me ajudar?
Obrigado.
Mostrar um form na tela com seu caption = ´´ e, em seguida, mostrar o caption com algo escrito (´caption deste form´), ou seja, preciso que o usuário perceba que o caption estava em branco em determinado momento e em seguida tem alguma coisa escrita.
Minha dúvida é em que momento (evento) eu faço isso.
Tentei no onShow e OnActivate do form, mas aí não dá aquele tempo pro usuário perceber a mudança do caption = ´´ para caption = ´Caption deste form´.
Consegui me fazer entender?
Podes me ajudar?
Obrigado.
Armindo
Curtidas 0
Respostas
Rodrigo_koga
26/04/2008
Voce pode usar um Timer.
Qdo carrega o form ele fica ativo e depois de executado vc pode desativa-lo.
Qdo carrega o form ele fica ativo e depois de executado vc pode desativa-lo.
GOSTEI 0
Armindo
26/04/2008
Voce pode usar um Timer.
Qdo carrega o form ele fica ativo e depois de executado vc pode desativa-lo.
Obrigado pela resposta, mas não entendi.
O que você quer dizer com ´Qdo carrega...´?
Eu já pensei em timer, mas acho não tem como. Quanto seria o interval dele? O programa poderia ser rodado em um Xeon ou num Pentium II, ou seja, o tempo de carregamento é bem diferente para um e outro.
Obrigado.
GOSTEI 0
Rodrigo_koga
26/04/2008
Bom acho q eh facil exemplificar do que explicar.
procedure TForm1.FormActivate(Sender: TObject);
begin
Timer1.Interval := 2000; // 2 segundos.
Timer1.Enabled := True; // Habilita o Timer.
end;
// Aqui executa o Timer
procedure TForm1.Timer1Timer(Sender: TObject);
begin
ShowMessage(´Muda o caption!´); // Pode ser para mudar o caption tb.
Timer1.Enabled := False; // Colocando False não executa mais.
end;
Acho q o exemplo acima resolve seu problema.
procedure TForm1.FormActivate(Sender: TObject);
begin
Timer1.Interval := 2000; // 2 segundos.
Timer1.Enabled := True; // Habilita o Timer.
end;
// Aqui executa o Timer
procedure TForm1.Timer1Timer(Sender: TObject);
begin
ShowMessage(´Muda o caption!´); // Pode ser para mudar o caption tb.
Timer1.Enabled := False; // Colocando False não executa mais.
end;
Acho q o exemplo acima resolve seu problema.
GOSTEI 0
Rodrigo_koga
26/04/2008
Acho q naum havia entendido bem sua duvida, sobre o caption se for do Form pode ser feito assim:
procedure TForm1.FormActivate(Sender: TObject);
begin
Timer1.Interval := 2000;
Timer1.Enabled := True;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Form1.Caption := ´Executou o Timer´;
Form1.Repaint;
Timer1.Enabled := False;
end;
Agora com relação ao Timer, pelo que eu sei ele conta segundos, e segundos são padrão em qualquer maquina. Agora se voce quer mudar o caption em outro momento acho melhor voce detalhar mais.
Qq coisa posta ai, pois com Delphi tudo eh possivel.
procedure TForm1.FormActivate(Sender: TObject);
begin
Timer1.Interval := 2000;
Timer1.Enabled := True;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Form1.Caption := ´Executou o Timer´;
Form1.Repaint;
Timer1.Enabled := False;
end;
Agora com relação ao Timer, pelo que eu sei ele conta segundos, e segundos são padrão em qualquer maquina. Agora se voce quer mudar o caption em outro momento acho melhor voce detalhar mais.
Qq coisa posta ai, pois com Delphi tudo eh possivel.
GOSTEI 0
Armindo
26/04/2008
Obrigado pela ajuda Rodrigo,
Acabei fazendo através de uma trhead. Aí, executo a trhead no onActivate do form e, lá na trhead, antes de iniciar sua execução eu dou um sleep(500) para esperar meio segundo. Nesse tempo o form já foi carregado e o efeito máquina de escrever no caption do form fica 10. A trhead também resolve o problema de o form ficar travado até que a rotina de aparecimento do caption tivesse completa, pois executando a rotina através dessa ferramenta, a execução ocorre em segundo plano, não travando o form que a chamou.
Eu nunca tinha usado trheads, mas achei muito bom e fácil de usar. Pode-se inclusive enviar parâmetros.
Valeu. Obrigado.
Acabei fazendo através de uma trhead. Aí, executo a trhead no onActivate do form e, lá na trhead, antes de iniciar sua execução eu dou um sleep(500) para esperar meio segundo. Nesse tempo o form já foi carregado e o efeito máquina de escrever no caption do form fica 10. A trhead também resolve o problema de o form ficar travado até que a rotina de aparecimento do caption tivesse completa, pois executando a rotina através dessa ferramenta, a execução ocorre em segundo plano, não travando o form que a chamou.
Eu nunca tinha usado trheads, mas achei muito bom e fácil de usar. Pode-se inclusive enviar parâmetros.
Valeu. Obrigado.
GOSTEI 0