Q&A

  • for , while 문에서 다른 이벤트를 기다리게...
안녕하세요...



이곳 도움을 많이 받고 공부하는 사람입니다..



역시나 궁금한게 또 생겼습니다... 참.. 저는 씨뿔뿔빌더를 사용하는데 델파이가



많이 활성화 되서 이곳을 주로 이용합니다...



질문은요... 제목대로 for 문이나 while 문에서 중간에 다른 이벤트가 생길때



까지 기다리게 할수 있는가 입니다...



예를 들어 버튼1을 누르면 다음과 같이 while 문이 실행됩니다...



while(1)

{

x = x+1;

// 이곳에서 다른 이벤트가 생길때 까지 대기

}



즉 , 위의 x = x+1; 다음에 기다렸다가 버튼2가 눌렸다는 이벤트가 생기면



그때 다시 다음 x = x+1; 을 실행하고 또 기다리고....



이런식으로 프로그램 중간에 잠시 멈추게 할수 있는지요...



물론 위의 예는 다른 방법으로 하면 되지만요...



고수님들의 조언을 부탁드립니다...



안녕히계세요...



3  COMMENTS
  • Profile
    이정욱 1999.07.08 01:46
    쩝.. 제가 사용하는 방법은 이렇습니다.

    델파이로~



    먼저 전역변수를 하나 놓아야 겠죠?

    var

    ButtonClicked : Boolean;



    그리고 버튼의 OnClick이벤트에 ButtonClicked := True 라는 것을 넣어주고요..

    글구 반복문에서는...



    while true do

    begin

    inc(x);

    while not ButtonClicked do Application.ProcessMessages;

    ButtonClicked := False;

    end;



    위처럼 하면 어떨까요?



    온라인상에서 만든것이라 수정이 필요할 수 있습니다.



    그럼 좋은코딩하세요~



    문보석 께서 말씀하시기를...

    > 안녕하세요...

    >

    > 이곳 도움을 많이 받고 공부하는 사람입니다..

    >

    > 역시나 궁금한게 또 생겼습니다... 참.. 저는 씨뿔뿔빌더를 사용하는데 델파이가

    >

    > 많이 활성화 되서 이곳을 주로 이용합니다...

    >

    > 질문은요... 제목대로 for 문이나 while 문에서 중간에 다른 이벤트가 생길때

    >

    > 까지 기다리게 할수 있는가 입니다...

    >

    > 예를 들어 버튼1을 누르면 다음과 같이 while 문이 실행됩니다...

    >

    > while(1)

    > {

    > x = x+1;

    > // 이곳에서 다른 이벤트가 생길때 까지 대기

    > }

    >

    > 즉 , 위의 x = x+1; 다음에 기다렸다가 버튼2가 눌렸다는 이벤트가 생기면

    >

    > 그때 다시 다음 x = x+1; 을 실행하고 또 기다리고....

    >

    > 이런식으로 프로그램 중간에 잠시 멈추게 할수 있는지요...

    >

    > 물론 위의 예는 다른 방법으로 하면 되지만요...

    >

    > 고수님들의 조언을 부탁드립니다...

    >

    > 안녕히계세요...

    >





  • Profile
    문보석 1999.07.08 04:14
    답변감사드립니다...



    쩝... 제가 원하는 것은 단순히 이정욱님의 말씀대로 버튼을 눌렀을때



    루프문이 도는 것이 아니거든요...



    루프문이 돌때 마다 다른 이벤트를 받으면 다시 루프를 도는것이죠...



    꼭 버튼이 클릭됐다는 이벤트가 아니더라도 확실하게 말씀드리자면



    while true do

    begin

    inc(x) ;

    // 이 부분에서 어떠한 이벤트든지간에 무조건 기다림...

    end;



    위에서 inc(x) 하고 난후에 기다렸다가 다른 이벤트가 생기면 다시 루프문이 돌고



    또 inc(x) 하고 난후에 기다렸다가 다른 이벤트가 생기면 다시 루프돌고...



    이런식이죠...



    다시 한번 답변 부탁드릴께요...



    안녕히... 꾸벅~~







    이정욱 께서 말씀하시기를...

    > 쩝.. 제가 사용하는 방법은 이렇습니다.

    > 델파이로~

    >

    > 먼저 전역변수를 하나 놓아야 겠죠?

    > var

    > ButtonClicked : Boolean;

    >

    > 그리고 버튼의 OnClick이벤트에 ButtonClicked := True 라는 것을 넣어주고요..

    > 글구 반복문에서는...

    >

    > while true do

    > begin

    > inc(x);

    > while not ButtonClicked do Application.ProcessMessages;

    > ButtonClicked := False;

    > end;

    >

    > 위처럼 하면 어떨까요?

    >

    > 온라인상에서 만든것이라 수정이 필요할 수 있습니다.

    >

    > 그럼 좋은코딩하세요~

    >





  • Profile
    안치봉 1999.07.08 04:18
    PeekMessage, GetMessage 를 사용해 보시죠...



    자세한건 Win32 API 도움말을 참고하세요.



    아니면 순수 API 방식으로 구현한 파스칼 소스를 보시던지요.





    문보석 께서 말씀하시기를...

    > 답변감사드립니다...

    >

    > 쩝... 제가 원하는 것은 단순히 이정욱님의 말씀대로 버튼을 눌렀을때

    >

    > 루프문이 도는 것이 아니거든요...

    >

    > 루프문이 돌때 마다 다른 이벤트를 받으면 다시 루프를 도는것이죠...

    >

    > 꼭 버튼이 클릭됐다는 이벤트가 아니더라도 확실하게 말씀드리자면

    >

    > while true do

    > begin

    > inc(x) ;

    > // 이 부분에서 어떠한 이벤트든지간에 무조건 기다림...

    > end;

    >

    > 위에서 inc(x) 하고 난후에 기다렸다가 다른 이벤트가 생기면 다시 루프문이 돌고

    >

    > 또 inc(x) 하고 난후에 기다렸다가 다른 이벤트가 생기면 다시 루프돌고...

    >

    > 이런식이죠...

    >

    > 다시 한번 답변 부탁드릴께요...

    >

    > 안녕히... 꾸벅~~

    >

    >

    >

    > 이정욱 께서 말씀하시기를...

    > > 쩝.. 제가 사용하는 방법은 이렇습니다.

    > > 델파이로~

    > >

    > > 먼저 전역변수를 하나 놓아야 겠죠?

    > > var

    > > ButtonClicked : Boolean;

    > >

    > > 그리고 버튼의 OnClick이벤트에 ButtonClicked := True 라는 것을 넣어주고요..

    > > 글구 반복문에서는...

    > >

    > > while true do

    > > begin

    > > inc(x);

    > > while not ButtonClicked do Application.ProcessMessages;

    > > ButtonClicked := False;

    > > end;

    > >

    > > 위처럼 하면 어떨까요?

    > >

    > > 온라인상에서 만든것이라 수정이 필요할 수 있습니다.

    > >

    > > 그럼 좋은코딩하세요~

    > >

    >

    >





    • 정찬기
    • 1999.04.27 19:01
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 신인재
      1999.04.27 22:02
      Components 메뉴에 import ActiveX Control항목을 선택하면 ListBox에 인스톨이 가능한 ActiveX컨트롤들...
    • 이상국
    • 1999.07.08 03:27
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이상국
      1999.07.09 03:42
      이상국 께서 말씀하시기를... > Install Shield Pro 5.1로 BDE 5.0을 설치하려고 합니다. > > 근데 ww...
    • 이동수
    • 1999.04.27 02:26
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 안치봉
      1999.04.27 09:03
      이동수 wrote: > 일반적인 DLL의 사용은 하고 있는데 > 필요에 의해서 C로 만든 DLL을 사용해야 합니다....
    • 한경수
    • 1999.04.27 03:19
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 안치봉
      1999.04.27 08:59
      한경수 wrote: > 델파이 초보자 입니다. > > 소스를 분석하다 보면 > XXX.Create(Application); > ...
    • 박성훈
    • 1999.07.08 02:10
    • 10 COMMENTS
    • /
    • 0 LIKES
    • rain
      1999.04.27 04:49
    • 조복기
      1999.07.08 02:41
    • 신인재
      1999.04.27 07:29
    • 구창민
      1999.07.08 02:53
    • 구창민
      1999.07.08 03:20
    • 조복기
      1999.07.08 03:33
    • 구창민
      1999.07.08 04:05
    • • • •
    • 이명학
    • 1999.07.08 01:40
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 강경중
      1999.04.27 05:12
      저는 LAN에서 이루어 질수 있는 채팅 프로르램을 짤려고 하는데 어려운 점이 몇가지 있습니다. 좀 가르쳐 ...
    • 구창민
      1999.07.08 02:15
      이명학 께서 말씀하시기를... > 가끔 프로그램을 보면 StringGrid나 DBGrid의 Cell에서 ComboBox의 형태를...
    • 글쎄요.
      1999.04.27 20:09
      1.첫번째 질문 Edit1의 길이 제한을 두고 StrToIntDef함수를 사용해 체크하면 됩니다. 다음은 그 예(길이...
    • 한경수
    • 1999.04.26 23:34
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 안치봉
      1999.04.27 01:28
      한경수 wrote: > 하나의 윈도우에서 윈도우를 브라우저의 프레임을 나누어 왼쪽의 메뉴를 누를때 마다 각...
    • rain
      1999.04.27 05:09
      안치봉 wrote: > 한경수 wrote: > > 하나의 윈도우에서 윈도우를 브라우저의 프레임을 나누어 왼쪽의 메...
    • rain
      1999.04.27 04:49
      어플리케이션이 실행되면 보통 작업표시줄에 나타나게 되는데, 작업표시줄에 나타나지 않고 실행되게 하려...
    • 구창민
      1999.07.08 02:07
      서경철 께서 말씀하시기를... > 배열로 버튼을 만들때는 TButton.Create(Self); > 이렇게 해서 만들었는...
    • 신인재
      1999.04.27 07:29
      rain wrote: > 어플리케이션이 실행되면 보통 작업표시줄에 나타나게 되는데, > 작업표시줄에 나타나지 ...
    • 서경철
      1999.07.12 20:10
      > TImage.Create메소드는 TComponents 에서 override 된 메소드이므로 > 위와 같이 하셔도 동작되어야 합...
    • 이정욱
      1999.07.08 01:49
      음 이상하군요.. 당연히 되어야 하는데... 쩝.. 전 이렇게 합니다. var i : integer; Image : ar...
    • 강성만
    • 1999.07.08 01:06
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 고혜정
      1999.04.25 12:36
      안녕하세요.. 오래간 만에 들어와보니 달라 졌군요. 스토오드 프로시저 컴포넌트를 사용할 기회가 생겼는...
    • 신호성
      1999.07.08 19:02
      강성만 께서 말씀하시기를... > 안녕하세요... > 매번 여기서 답변을 얻는 방문객입니다.. > 질문에 답...
    • 신호성
      1999.04.27 04:11
      고혜정 wrote: > 안녕하세요.. 오래간 만에 들어와보니 달라 졌군요. > 스토오드 프로시저 컴포넌트를 ...
    • 노인네
      1999.07.08 00:25
      안녕하세요.. 다름이 아니라 일반 메모( Memo )컴퍼넌트에서는 Memo1.Lines.Add( ' Add line '); 을 ...
    • 신호성
      1999.04.27 03:49
      류 wrote: > 안녕하세요... > 질문을 드리게 됐네요... > > 2개의 테이블을 비교하여 즉 A 테이블과 B...
    • 구창민
      1999.07.08 01:38
      노인네 께서 말씀하시기를... > 안녕하세요.. > > 다름이 아니라 일반 메모( Memo )컴퍼넌트에서는 > ...
    • 구창민
      1999.04.26 22:20
      류 wrote: > 안녕하세요... > 질문을 드리게 됐네요... > > 2개의 테이블을 비교하여 즉 A 테이블과 B...
    • 한경수
    • 1999.04.27 03:19
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 안치봉
      1999.04.27 08:59
      한경수 wrote: > 델파이 초보자 입니다. > > 소스를 분석하다 보면 > XXX.Create(Application); > ...
    • 문보석
    • 1999.07.08 00:17
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.07.08 01:46
      쩝.. 제가 사용하는 방법은 이렇습니다. 델파이로~ 먼저 전역변수를 하나 놓아야 겠죠? var Button...
    • 문보석
      1999.07.08 04:14
      답변감사드립니다... 쩝... 제가 원하는 것은 단순히 이정욱님의 말씀대로 버튼을 눌렀을때 루프문이...
    • 안치봉
      1999.07.08 04:18
      PeekMessage, GetMessage 를 사용해 보시죠... 자세한건 Win32 API 도움말을 참고하세요. 아니면 순...
    • 신인재
      1999.04.27 03:19
      박재근 wrote: > 프로그램을 작성중인데 입력받은 날짜(문자형)을 시간형으로 변경하여야 하는 데 > 그때...
    • tedeum
    • 1999.07.08 00:08
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최수영
      1999.07.11 20:22
      tedeum 께서 말씀하시기를... > with StProc do begin > If Active Then Close; > ParamByNam...