pintar edits

Delphi

06/05/2003

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

Curtidas 0

Respostas

Afischer

Afischer

06/05/2003

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


GOSTEI 0
POSTAR