Q&A

  • 반복 루틴 중 버튼 클릭 이벤트에 대기...
반복 루틴중에서 버튼을 눌러야 다음번 실행을 계속하도록 하려면

어떻게 해야 하나여. 도스에선라면 쉽겠지만 윈도우 이벤트는 영~~



For i:=1 to 5 do

begin

Statement A

----------- <== 이부분에서 같은 폼에 있는 버튼 클릭이벤트를

----------- 기다립니다.같은 폼이니 MessageBox는 안되겠지요.

Statement B

end;



쉬울것 같은데 착안이 쉽지 않습니다. 좋은 아이디어가 있으시면 알려주세요.



3  COMMENTS
  • Profile
    신인재 1999.04.22 02:56
    하윤철 wrote:

    > 반복 루틴중에서 버튼을 눌러야 다음번 실행을 계속하도록 하려면

    > 어떻게 해야 하나여. 도스에선라면 쉽겠지만 윈도우 이벤트는 영~~

    >

    > For i:=1 to 5 do

    > begin

    > Statement A

    > ----------- <== 이부분에서 같은 폼에 있는 버튼 클릭이벤트를

    > ----------- 기다립니다.같은 폼이니 MessageBox는 안되겠지요.

    > Statement B

    > end;

    >

    > 쉬울것 같은데 착안이 쉽지 않습니다. 좋은 아이디어가 있으시면 알려주세요.

    >



    음냐...아래의 내용을 참고하세요...쩝

    대충 비슷하긴 한데....

    근데 이런 코드 어디 쓰이는 건지...요 알려 주세요 궁금.......^^;



    procedure TForm1.Button2Click(Sender: TObject);

    begin

    btn_click := True;

    end;



    procedure TForm1.Button1Click(Sender: TObject);

    var

    i,j : integer;



    begin

    j := 0;

    for i := 0 to 5 do begin

    try

    inc(j);

    showmessage('^^1');

    finally

    While not btn_click do

    Application.ProcessMessages;

    end;

    showmessage('^^2');

    btn_click := False;

    end;

    end;



    procedure TForm1.FormCreate(Sender: TObject);

    begin

    btn_click := False;

    end;





  • Profile
    안치봉 1999.04.22 02:52
    하윤철 wrote:

    > 반복 루틴중에서 버튼을 눌러야 다음번 실행을 계속하도록 하려면

    > 어떻게 해야 하나여. 도스에선라면 쉽겠지만 윈도우 이벤트는 영~~

    >

    > For i:=1 to 5 do

    > begin

    > Statement A

    > ----------- <== 이부분에서 같은 폼에 있는 버튼 클릭이벤트를

    > ----------- 기다립니다.같은 폼이니 MessageBox는 안되겠지요.

    > Statement B

    > end;

    >

    > 쉬울것 같은데 착안이 쉽지 않습니다. 좋은 아이디어가 있으시면 알려주세요.

    >



    참고로 루프내에서는 프로세서를 독차지 하지 않도록...



    Application.ProcessMessage 라는 구문을 넣어주어야 전체적으로 매끄러워 집니다.





  • Profile
    안치봉 1999.04.22 02:50
    하윤철 wrote:

    > 반복 루틴중에서 버튼을 눌러야 다음번 실행을 계속하도록 하려면

    > 어떻게 해야 하나여. 도스에선라면 쉽겠지만 윈도우 이벤트는 영~~

    >

    > For i:=1 to 5 do

    > begin

    > Statement A

    > ----------- <== 이부분에서 같은 폼에 있는 버튼 클릭이벤트를

    > ----------- 기다립니다.같은 폼이니 MessageBox는 안되겠지요.

    > Statement B

    > end;

    >

    > 쉬울것 같은데 착안이 쉽지 않습니다. 좋은 아이디어가 있으시면 알려주세요.

    >



    안녕하세요.



    그런식으로 하시지 말고요. 음..예를 들면 전역적으로 몇번이나 버턴을 눌렀는가를 저장하는 변수를 만들어 해결하시는게 더 좋지 않을까요.