Mostrar Caption Somente Depois do Form Ativo

Delphi

26/04/2008

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.


Armindo

Armindo

Curtidas 0

Respostas

Rodrigo_koga

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.


GOSTEI 0
Armindo

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

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.


GOSTEI 0
Rodrigo_koga

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.


GOSTEI 0
Armindo

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.


GOSTEI 0
POSTAR