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.


Kroki

Kroki

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


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar