Application.ProcessMessage;
메세지를 진행 시키라는 거지요.
즉 프로그램의 메세지 큐에 들어 와 있는 메세지를 처리 해라 라는 겁니다.
프로그램에서 오랫동안 루프를 돌게 되면(While 등)
프로그램이 받게 되는 메시지를 처리할 시간을 안주죠.
그래서 프로그램이 얼어버린다(Freeze)는 표현을 쓰기두 하는데,
프로그램이 사용자의 입력이나, 화면 갱신을 안하는거죠
일테면 어떤 다른 프로그램에 화면이 가려졌다가 나타났을때
화면을 다시 그려줘야 하는데, 그걸 그려주지 못한다던지
어떤 일을 할때 중간에 취소버튼으로 취소를 해야할 때가 있는데
버튼을 눌러도 프로그램이 거기에 대한 처리를 못하는거죠.
그러니까 루프 도는 중간중간에 그런것도 처리 해주면서 일하라는 겁니다.
버튼을 누르면 아래와 같이 while 문이 돕니다 while ... do begin 작업... Sleep(1000); end; 근데 이 버튼을 한번 더 누르면 작업을 중간에 종료하고 싶습니다 그리고 Application.ProcessMessage 이거 어디에 사용하는건지요..? 상세한...
아폴론
•
2003.02.16 01:31
var Tstop : Boolean; //전역번수선언
루프를 돌립니다.
...
열심히
•
2003.02.15 19:35
음...근데 한가지 문제가 아래와 같이 sleep()을 쓰는것은 좋지가 않습니다.
TTimer를 쓰시는게 좋ㅇ르...
KDDG_Check
•
2003.02.15 18:59
안녕하세요
Application.ProcessMessage;
메세지를 진행 시키라는 거지요.
즉 프로그램의 메세지 큐에...
KDDG_ZZOM
•
2003.02.15 13:02
var
Form1: TForm1;
Work : Boolean;
implementation
{$R *.DFM}
proced...
var Tstop : Boolean; //전역번수선언
루프를 돌립니다.
while not eof do begin
Application.ProcessMessages;
if not Tstop then begin
break;
exit;
end;
별도의 Stop버튼을 누릅니다.
Tstop := False;