Fórum pintar edits #158046
06/05/2003
0
Alguem pode me explicar poeque isso não funciona ou como devo fazer?
procedure TForm1.Button1Click(Sender: TObject);
begin
edit1.Color:=(ClRed);
sleep(1000);
edit2.color:=(ClRed);
end;
Pela lógica o Edt1 ficaria vermelho e depois de 1 seg o edit2 tambem ficaria vermelho,mas aqui os dois ficam ao mesmo tempo.
procedure TForm1.Button1Click(Sender: TObject);
begin
edit1.Color:=(ClRed);
sleep(1000);
edit2.color:=(ClRed);
end;
Pela lógica o Edt1 ficaria vermelho e depois de 1 seg o edit2 tambem ficaria vermelho,mas aqui os dois ficam ao mesmo tempo.
Kroki
Curtir tópico
+ 0
Responder
Posts
06/05/2003
Afischer
Caro delphiano,
se você olhar na ajuda do delphi notará que está escrito que a procedure sleep() funciona com threads. No meu entender, ela é utilizada para fazer uma pausa numa thread enquanto outra funciona.
Numa outra hora posso explicar o conceito de Threads. Por agora, vai uma função que resolve o seu problema.
Ela faz com que o programa espere alguns milissegundos e logo após continue a execução.
procedure Delay( mSecs: longint );
var
vFirstTickCount: longint;
begin
vFirstTickCount := GetTickCount;
repeat
Application.ProcessMessages;
until ( ( GetTickCount - vFirstTickCount ) >= mSecs );
end;
Use-a do seguinte modo:
procedure TForm1.Button1Click( Sender: TObject );
begin
Edit1.Color := clRed;
delay( 1000 );
Edit2.Color := clRed;
end;
Era isso aí. 8)
André Fischer
se você olhar na ajuda do delphi notará que está escrito que a procedure sleep() funciona com threads. No meu entender, ela é utilizada para fazer uma pausa numa thread enquanto outra funciona.
Numa outra hora posso explicar o conceito de Threads. Por agora, vai uma função que resolve o seu problema.
Ela faz com que o programa espere alguns milissegundos e logo após continue a execução.
procedure Delay( mSecs: longint );
var
vFirstTickCount: longint;
begin
vFirstTickCount := GetTickCount;
repeat
Application.ProcessMessages;
until ( ( GetTickCount - vFirstTickCount ) >= mSecs );
end;
Use-a do seguinte modo:
procedure TForm1.Button1Click( Sender: TObject );
begin
Edit1.Color := clRed;
delay( 1000 );
Edit2.Color := clRed;
end;
Era isso aí. 8)
André Fischer
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)