Q&A

  • 공백 문자시 OnChange를 실행치 않으려면 어떻게?


제목 그대로의 문제 때문에 질문을 올립니다.

Form Show를 할 때마다 Edit 창의 Text를 지우고 싶어서

공백('')을 사용하였습니다. 물론 그 Edit창에는 OnChange 이벤트가

걸려 있구요.

그런데 맨 처음 한번 실행 될 때에는 공백('')이 이벤트를 발생시키지 않고

지나가는데 두 번째 부터는 공백('')에서 이벤트를 발생시키더라구요.

그래서 공백을 ''에서 ' '으로 바꾸었더니 처음에는 이벤트를 발생시키고

두 번째에는 이벤트를 발생치 않더군요.

이렇게 되는 이유가 무엇인지 모르겠더군요.

이런 경우는 어떻게 처리를 해야 하는지 궁금합니다.



어떤 공백을 써서 에디트 창을 지워야 OnChange 이벤트를 발생시키지 않나요?

아니면 공백이 아닌 다른 어떤 방식을 써서 에디트 창을 지우면 좋을까요?





3  COMMENTS
  • Profile
    mute 1999.08.18 23:16
    황하성 께서 말씀하시기를...

    >

    > 제목 그대로의 문제 때문에 질문을 올립니다.

    > Form Show를 할 때마다 Edit 창의 Text를 지우고 싶어서

    > 공백('')을 사용하였습니다. 물론 그 Edit창에는 OnChange 이벤트가

    > 걸려 있구요.

    > 그런데 맨 처음 한번 실행 될 때에는 공백('')이 이벤트를 발생시키지 않고

    > 지나가는데 두 번째 부터는 공백('')에서 이벤트를 발생시키더라구요.

    > 그래서 공백을 ''에서 ' '으로 바꾸었더니 처음에는 이벤트를 발생시키고

    > 두 번째에는 이벤트를 발생치 않더군요.

    > 이렇게 되는 이유가 무엇인지 모르겠더군요.

    > 이런 경우는 어떻게 처리를 해야 하는지 궁금합니다.

    >

    > 어떤 공백을 써서 에디트 창을 지워야 OnChange 이벤트를 발생시키지 않나요?

    > 아니면 공백이 아닌 다른 어떤 방식을 써서 에디트 창을 지우면 좋을까요?

    >

    >





    OnChange event에서 공백인지 아닌지를 판단하면 되지않을까요?



    Tform1.Edit1Change(Sender: TObject)

    begin

    if edit1.text <> '' then

    begin

    //이벤트처리

    end;

    end;





    이렇게 하면 되지않을까요....







  • Profile
    김연희 1999.08.18 17:27
    폼이 열릴때 필요하시다구요.



    edit1.clear;



    위의 구문을 넣어 보십시요.

    edit 가 여러개라면

    edit들을 프로시져로 묶어서 사용하시면 편할겁니다.



  • Profile
    황하성 1999.08.18 17:36
    김연희 께서 말씀하시기를...

    > 폼이 열릴때 필요하시다구요.

    >

    > edit1.clear;

    >

    > 위의 구문을 넣어 보십시요.

    > edit 가 여러개라면

    > edit들을 프로시져로 묶어서 사용하시면 편할겁니다.

    >



    알려주신 방식을 사용해 보았더니...

    같은 결과가 나오더라구요.

    제가 생각하기에는 Clear를 사용하는 것도 일단은 값을 변화시키는 것이기

    때문에 OnChange이벤트를 발생시키더라구요.

    다른 방법은 없을까요?