Q&A

  • (왕초보)서브 폼이 닫힐때...
안녕하세요. 저는 간단한 메모장 프로그램을 만들려고 하는데요, 메인폼에서는 검색을 하고 서브폼에서는 입력을 하는 데이타 베이스 프로그램입니다. 그런데, 서브폼에서 Bitbtn를 클릭하면 onClick이벤트가 발생되어 form2.close 로 폼을 닫게 만들었는데요, 그런데 이상하게도 서브폼의 Edit1 과 Memo에서 Enter를 쳐도 이 Bitbtn.onClick 프로시져로 들어가서 서브폼이 닫혀지더군요. 서브폼에는 Edit, Memo, Bitbtn 세개의 컴포넌트가 있는데, 이 셋중에 어느 하나라도 클릭하거나 Enter키를 쳐도 Bitbtn.onClick 프로시져를 실행시키더라구요. 이게 왜 이렇게 되는 건가요?



2  COMMENTS
  • Profile
    하윤철 1999.05.18 01:14
    북해 wrote:

    > 안녕하세요. 저는 간단한 메모장 프로그램을 만들려고 하는데요, 메인폼에서는 검색을 하고 서브폼에서는 입력을 하는 데이타 베이스 프로그램입니다. 그런데, 서브폼에서 Bitbtn를 클릭하면 onClick이벤트가 발생되어 form2.close 로 폼을 닫게 만들었는데요, 그런데 이상하게도 서브폼의 Edit1 과 Memo에서 Enter를 쳐도 이 Bitbtn.onClick 프로시져로 들어가서 서브폼이 닫혀지더군요. 서브폼에는 Edit, Memo, Bitbtn 세개의 컴포넌트가 있는데, 이 셋중에 어느 하나라도 클릭하거나 Enter키를 쳐도 Bitbtn.onClick 프로시져를 실행시키더라구요. 이게 왜 이렇게 되는 건가요?

    >



    BitBtn이라면... 아마 프로퍼티 중에 ModalResult 라는게 있을겁니다.

    이게 mrOK로 되있는 경우에 이런 상황이 발생하던데...

    한번 확인해보시지요.. mrNone이 정상입니다만.

    짧은 경험이었습니다...





  • Profile
    이정욱 1999.05.17 19:37
    Edit을 클릭해도 그 이벤트가 발생하나요? Memo도요?

    이상하군요..

    Edit에서 Enter를 시면 그 이벤트가 발생할 수도 있습니다.

    만약에 BitBtn.Default가 True로 되어있으면 말이죠.

    BitBtn.Default는 입력창(TEdit같은것들)에 Focus가 가있는 상태에서도 Enter를 치면 BitBtn을 누른 효과가 나죠.

    예를 들면 이름과 전화번호같은 것을 쓰는데 TAb으로 Focus를 이동하고 Enter를 치면 마치게 되게 하기 위한것이죠.

    Default값을 False로 주시던가 더 좋은 방법은 Edit의 OnKeyPress이벤트에서



    If Key = #13 then

    begin

    *여기는 다음콘트롤로 이동하시던가 무슨일을 하신 후...

    Key := 0; <-- 이것이 Enter를 잡아먹게 하는것이죠.

    end;



    아니면 폼2의 전체에서 하시고 싶으시면 폼2의 KeyPreview프로퍼티를 True로 주시고 폼2의 OnKeyPress에서 하시면 폼2의 모든컨트롤에서 키가 눌렸을 때 이이벤트가 발생합니다. 그리고 그 이벤트에서 처리해 주시면됩니다.



    북해 wrote:

    > 안녕하세요. 저는 간단한 메모장 프로그램을 만들려고 하는데요, 메인폼에서는 검색을 하고 서브폼에서는 입력을 하는 데이타 베이스 프로그램입니다. 그런데, 서브폼에서 Bitbtn를 클릭하면 onClick이벤트가 발생되어 form2.close 로 폼을 닫게 만들었는데요, 그런데 이상하게도 서브폼의 Edit1 과 Memo에서 Enter를 쳐도 이 Bitbtn.onClick 프로시져로 들어가서 서브폼이 닫혀지더군요. 서브폼에는 Edit, Memo, Bitbtn 세개의 컴포넌트가 있는데, 이 셋중에 어느 하나라도 클릭하거나 Enter키를 쳐도 Bitbtn.onClick 프로시져를 실행시키더라구요. 이게 왜 이렇게 되는 건가요?

    >





    • djha
    • 1999.05.17 22:17
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 황준동
      1999.05.18 01:47
      djha wrote: > > 안녕하십니까? 입문한지 얼마 안된 초보입니다. > > 텍스트 에디터를 만들고자 하는...
    • djha
      1999.05.18 02:44
      초보라서 질문이 엉성했습니다.다시 질문을 드리겠습니다. 텍스트에디트를 만들고자합니다. 그런데 이...
    • 이호선
    • 1999.05.17 20:38
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김영대
      1999.05.17 20:54
      이호선 wrote: > 안녕하세요. > 현재 화면 모드를 알아 내는 방법이 어떻게 되나요. 안녕하세요 김영...
    • saint09
    • 1999.05.17 20:11
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 황준동
      1999.05.18 01:56
      saint09 wrote: > 안녕하세요 델파이로 db를 작성하려고 하는데 기본적으로 파라독스로 되어 있더군요. 예...
    • 북해
    • 1999.05.17 18:55
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.17 19:44
      TMemo의 ImeMode를 imSHanguel 로 줘보세요. ^^ 델4에서는 간단하죠? 북해 wrote: > 안녕하세요. 저는...
    • 북해
    • 1999.05.17 18:53
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.17 19:41
      델파이의 자동코드완성기는 그 문법에 맞게 출력이 됩니다. 즉, Edit1.Text := Query1. 까지 쳤을때는 Fie...
    • 초심자
    • 1999.05.17 18:40
    • 1 COMMENTS
    • /
    • 0 LIKES
    • redhead
      1999.05.18 19:16
      RAM을 얼마나 쓰시는지? 윈98에서 리소스가 부족하면 그런 현상이 나타나는 것 같던데요.
    • 북해
    • 1999.05.17 18:39
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 하윤철
      1999.05.18 01:14
      북해 wrote: > 안녕하세요. 저는 간단한 메모장 프로그램을 만들려고 하는데요, 메인폼에서는 검색을 하고...
    • 이정욱
      1999.05.17 19:37
      Edit을 클릭해도 그 이벤트가 발생하나요? Memo도요? 이상하군요.. Edit에서 Enter를 시면 그 이벤트가 ...
    • 한상훈
    • 1999.05.17 12:21
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.17 19:21
      Query로 하셨으면 그 Query는 이미 그 조건에 해당하는 데이타만 긁어서 가지고 있습니다. 다음데이타를 ...
    • 이대선
    • 1999.05.17 05:18
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 황준동
      1999.05.18 01:45
      이대선 wrote: > 'CBAA'를 'AABC'로 쇼트 시키는 법을 알고 싶습니다. > > 꼭 좀 답변해 주세요.. > ...
    • 김영대
      1999.05.17 17:50
      이대선 wrote: > 'CBAA'를 'AABC'로 쇼트 시키는 법을 알고 싶습니다. > > 꼭 좀 답변해 주세요.. > ...
    • saint09
    • 1999.05.16 22:11
    • 0 COMMENTS
    • /
    • 0 LIKES
    • saint09
    • 1999.05.16 09:37
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.16 11:16
      DrawFocusRect는 이렇게 사용하세요. 예를들어 Rect(100,100,200,200)을 Panel에 그린다면... var Rct...
    • 이정욱
      1999.05.16 04:48
      DrawFocusRect를 이용하시면 됩니다. DrawFocusRect를 이용해서 그린 후 다시 그자리에 DrawFocusRect를 ...
    • 정방현
    • 1999.05.16 01:59
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 이천주
      1999.05.17 22:23
      저는 이렇게 했읍니다. 두개짜리 따옴표가 아니고 한개짜리를 써야합니다. ss := ' update X...
    • 신호성
      1999.05.16 06:01
      정방현 wrote: > 'cpu'라는 인자를 대입해서 오라클 테이블에 update하고자 합니다. > 실행 error는 Edat...
    • 정방현
      1999.05.16 20:01
      신호성 wrote: > 정방현 wrote: > > 'cpu'라는 인자를 대입해서 오라클 테이블에 update하고자 합니다. ...
    • 김경수
      1999.05.17 00:26
      안녕하세요. parambyname('cpu').asstring~~` 대신에 params[0].asstring 으로 바꾸어서 해보세요.왜그런...
    • saint09
    • 1999.05.16 01:56
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 1999.05.16 02:04
      saint09 wrote: > 안녕하세요. 델파이에 보면 각 컴포넌트별로 이벤트가 있습니다. 이 이벤트들을 보면 마...
    • 이정욱
      1999.05.17 05:15
      스크롤바를 움직일 때 발생하는 메세지입니다. WM_SYSCOMMAND 의 wParam의 값이 SC_HSCROLL 이면 수평스크...
    • 강지영
    • 1999.05.15 21:36
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 1999.05.15 23:02
      제가 델파이로 api를 공부하다가.. wm_char 을 받는 부분을 사용한게 있네요.. 도움이 될지는 모르겠지...