ProcessMessage란 ,
이 메소드를 호출함으로써 윈도우가 현재 메시지 큐에 있는 메시지를 처리
할 수 있도록 한다구 나와 있군요.
ProcessMessage는 윈도우 메시지 큐에 아무것도 남지 않을 때까지
루프를 돌면서 메시지를 처리하고 모든 처리가 끝나면 제어권을 어플리케이션
에 넘긴다라구도요 ^^;
F1눌러서 도움말 확인하세요~
You Run the program, Click the Button; What happens?
Nothing happens for 3 seconds then the Panel turns Green.
What happened to Red?
Hah, I say.
Well guess what, when you are in the Button1Click procedure, you do not repaint the Form UNTIL YOU EXIT the procedure.
While you are in the procedure, you see nothing changing on your Form; unless you say the magic words!
Application.ProcessMessages;
procedure TForm1.Button1Click(Sender: TObject);
begin
Panel1.Color:=clRed;
Application.ProcessMessages; // this will repaint your Form
sleep(3000);
Panel1.Color:=clGreen;
end;
Now you hit the Button, the Panel turns Red for 3 seconds, then turns Green.
So, what have we learned form this.
If you are inside a procedure and you want things to change on your Form, so that the user can see them; you have to use:
Application.ProcessMessages;
At all the places where you want the Form to change.
This gives you a simple way of doing quasi MULTITASKING in Delphi.
이 메소드를 호출함으로써 윈도우가 현재 메시지 큐에 있는 메시지를 처리
할 수 있도록 한다구 나와 있군요.
ProcessMessage는 윈도우 메시지 큐에 아무것도 남지 않을 때까지
루프를 돌면서 메시지를 처리하고 모든 처리가 끝나면 제어권을 어플리케이션
에 넘긴다라구도요 ^^;
F1눌러서 도움말 확인하세요~