Q&A

  • onclick() event 사용법을 몰라요 ㅜ.ㅜ
timer event 안의 내용 입니다.

즉, timer를 이용하여 button1이 눌렸는지 알아보는 인터럽트입니다.

그런데, 컴파일시 에러가 발생을 하네요



살려주세요 @.@



form1.timer1timerclick(sender : Tobject)

begin

if button1.onclick(sender) then

stop := true;

end;



[error] type of expression must be BOOLEAN



4  COMMENTS
  • Profile
    술친구 2000.01.10 23:07
    castle load wrote:

    > timer event 안의 내용 입니다.

    > 즉, timer를 이용하여 button1이 눌렸는지 알아보는 인터럽트입니다.

    > 그런데, 컴파일시 에러가 발생을 하네요

    >

    > 살려주세요 @.@

    >

    > form1.timer1timerclick(sender : Tobject)

    > begin

    > if button1.onclick(sender) then

    > stop := true;

    > end;

    >

    > [error] type of expression must be BOOLEAN

    >



    안녕하세요.. 술친굽니다.



    if 와 then 사이에는 조건문이 들어가야 되걸랑요..

    그런데 위를 보니 실행 프로시져가 들어가있군요..

    버튼이 눌려졌는지 알아보려면 버튼의 onclick 프로시져가

    실행될때 플래그를 지정해서 사용하는 방법이 있을것같군요,,



    ex)

    procedure form1.Button1Click(Sender : TObject);

    begin

    V_Click := True;

    end;



    procedure form1.timer1timer(sender : Tobject)

    begin

    if V_Click then

    stop := true;

    end;

    여기서 V_Click 은 전역변수 Boolean 형입니다.



    고수님들의 고견을 기다립니다.



    술친구였습니다.

  • Profile
    castle load 2000.01.10 23:26
    while loop 실행중인데요

    버튼 클릭 이벤트를 인식못하더라구요



    예를 들면

    while not condition

    begin

    caption := 'no good!';

    end;



    위의 루프가 실행중일때 마우스를 눌러도 form1.mousedown 이벤트는 발생하지 않던데요?

    제가 잘못 알고 있는 건가요?



    저에게 한수 가르쳐 주세요^^



    술친구 wrote:

    > castle load wrote:

    > > timer event 안의 내용 입니다.

    > > 즉, timer를 이용하여 button1이 눌렸는지 알아보는 인터럽트입니다.

    > > 그런데, 컴파일시 에러가 발생을 하네요

    > >

    > > 살려주세요 @.@

    > >

    > > form1.timer1timerclick(sender : Tobject)

    > > begin

    > > if button1.onclick(sender) then

    > > stop := true;

    > > end;

    > >

    > > [error] type of expression must be BOOLEAN

    > >

    >

    > 안녕하세요.. 술친굽니다.

    >

    > if 와 then 사이에는 조건문이 들어가야 되걸랑요..

    > 그런데 위를 보니 실행 프로시져가 들어가있군요..

    > 버튼이 눌려졌는지 알아보려면 버튼의 onclick 프로시져가

    > 실행될때 플래그를 지정해서 사용하는 방법이 있을것같군요,,

    >

    > ex)

    > procedure form1.Button1Click(Sender : TObject);

    > begin

    > V_Click := True;

    > end;

    >

    > procedure form1.timer1timer(sender : Tobject)

    > begin

    > if V_Click then

    > stop := true;

    > end;

    > 여기서 V_Click 은 전역변수 Boolean 형입니다.

    >

    > 고수님들의 고견을 기다립니다.

    >

    > 술친구였습니다.

  • Profile
    술친구 2000.01.11 01:29
    castle load wrote:

    > while loop 실행중인데요

    > 버튼 클릭 이벤트를 인식못하더라구요

    >

    > 예를 들면

    > while not condition

    > begin

    > caption := 'no good!';

    > end;

    >

    > 위의 루프가 실행중일때 마우스를 눌러도 form1.mousedown 이벤트는 발생하지 않던데요?

    > 제가 잘못 알고 있는 건가요?

    >

    > 저에게 한수 가르쳐 주세요^^

    >



    제가 알기로는 이벤트 발생시 순차적으로 실행이 된다고 알고 있습니다.

    그러므로 마우스 이벤트는 while 문이 속한 프로시져나 함수가 끝난후에

    실행이 되리라 봅니다.



    이것을 해결하는 방법으로 쓰레드를 이용하는 방법이 있는걸로 알고 있습니다.

    제가 아직 실력이 모자라 여기까지 밖에 답변드릴 수 없군요..



    고수님들의 고견을 기다립니다.



    술친구였습니다.

  • Profile
    여영식 2000.01.12 00:35
    > while not condition

    > begin

    > caption := 'no good!';

    > end;



    다음과 같이 바꾸면 이벤트를 받을 수 있습니다.



    > while not condition

    > begin

    > caption := 'no good!';

    > Application.ProcessMessages;

    > end;



    Application.ProcessMessages는 오랜시간 루핑처리시 반드시 넣어 주어야 합니다.

    이에 대한 내용은 Help 를 참조 하시길 바랍니다.