C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[69092] Re:Re:Re:Re:어느 컴포넌트로 부터 이벤트가 발생했는지 알아내는..?
짤팔이 [zzalpari] 1567 읽음    2013-02-05 12:14
꼬부기님..감사합니다.
꼬부기님의 방법과 제가 하고 있는 방법이 같습니다.
아무래도 기존 방식대로 해야할 것 같네요...^^
감사합니다.


꼬부기 님이 쓰신 글 :
: 첨부파일은 중요한게 아니에요~ ^^
:
: 제가 질문을 이해한게 맞는지 싶어서 올려본거구요~
:
: 예를 들어 Object Inspectop 창에서 Edit1의 OnClick 이벤트 Edit1Click을 복사해서 Edit2의 OnClick에 붙여넣기하면 Edit1, Edit2 모두 하나의 EditClick1 함수로 이벤트를 받을 수 있습니다.
:
: 거기서 Sender의 클래스 이름으로 TEdit라는 것을 확인하고(무슨 컴포넌트인지 확인가능 ex:TLable, TEdit, TMaskEdit....) TEdit로 캐스팅 한다음 Name을 얻으면
:
: 그 콤포넌트가 어떤 콤포넌트인지 얻으 실 수 있습니다.
:
: 제 방법이 원하시는 방법인지 모르겠습니다 ^^;;
:
: 짤팔이 님이 쓰신 글 :
: : 꼬부기님,답변감사합니다..
: : 그런데요..첨부 file - projects.exe 가 다운로드가 안되는데요...
: : 제 PC에서만 그런건지는 잘 모르겠습니다..에고~~
: : 그래서,,다른글들 중 첨부된 file을 Download 해보니 그건 잘 되네요..
: : --
: : 제가 그동안 해왔던 방법은...
: : edit1 을 클릭하면 자신의 click-event 루틴에서 자신의 component 를 Global 변수에 저장을 합니다.
: : 예를 들면 TEdit * Global_Edit = edit1; -- 이렇게요..
: : edit2 을 클릭하면  TEdit * Global_Edit = edit2; -- 이렇게요..
: : 저장한 후 어떤 원하는 함수를 call 하면 그 함수에서는 Global_Edit 를 대상으로 원하는 일을 처리합니다.
: : edit 를 예로 들었지만 chart 라든지 기타 component 에서도 같은 방법으로 처리 합니다.
: : --
: : 위 방법이 잘 되기는 합니다. 몇개 안될 경우엔 나름 괜찮은 방법 같아요..
: : --
: : ApplcationEvent 같은(?)걸 이용하면 일일이 각 component 의 click event 내에서 자기자신이 누구인지를
: : Global 변수를 통해 알려줄 필요 없이,,,,알아낼 수도 있지 않을까란 의문이 듭니다.
: : -- 그나저나 download 가 왜 안되죠?? -- 아시는 분 조언 부탁해요..
: :
: :
: :
: : 꼬부기 님이 쓰신 글 :
: : : 질문을 잘 이해한건지 모르겠지만...
: : :
: : : 이벤트를 알아내시려는 컴포넌트들의 이벤트를 하나의 이벤트 함수로 묶고 (예를 들어 OnClick 이벤트)
: : :
: : : OnClick 이벤트 발생시 TEdit인지 TMaskEdit인지 판단을 하시면 될듯 합니다.
: : :
: : : 간단한 예제 프로그램 첨부합니다.
: : :
: : : 짤팔이 님이 쓰신 글 :
: : : : Form위에 클릭 Event 가 발생할 경우 ApplicationEvents 를 사용하여
: : : :  if (Msg.message == WM_KEYUP) 을 이용하여 처리를 하려고 하는데요..
: : : : 어떤 콤로넌트로 부터 event 가 발생했는지를 알아내려면 어떻게 해야 하는지요?
: : : : 예를 들면 MaskEdit 를 클릭했을때만 그 해당 MaskEdit에 대한 처리를 하려고 합니다.
: : : : 지금은 각각의 MaskEdit 를 Click 했을 때 그 MaskEdit를 Global 변수에 저장을 해서
: : : : 구현하고 있는데요.. 이게 너무 많아서 (수백개).. 하기가 힘듭니다.
: : : : Msg.pt 좌표를 이용해서 콤포넌트를 알아내는 방법이 없을까 해서 search 해 보았지만
: : : : 못찾겠군요..
: : : : 오늘 하루종일 Q/A Search 하다가 결국 질문 올립니다.
: : : : 그동안 Global 변수에 저장하는 방법을 많이 사용해 왔고.. 그런대로 잘 되고 있습니다.
: : : : (MaskEdit 뿐만 아니라 다른 콤포넌트들....도요)
: : : : 이 방법이 세련된(?)방법이 아닐거라고 늘 생각해왔는데요...
: : : : 수백개 정도 되니까 역시 좋은 방법이 아니란 생각이 듭니다.
: : : : 고수님들의 조언 부탁합니다.

+ -

관련 글 리스트
69086 어느 컴포넌트로 부터 이벤트가 발생했는지 알아내는..? 짤팔이 1464 2013/02/04
69087     Re:어느 컴포넌트로 부터 이벤트가 발생했는지 알아내는..? 꼬부기 1513 2013/02/04
69088         Re:Re:어느 컴포넌트로 부터 이벤트가 발생했는지 알아내는..? 짤팔이 1465 2013/02/05
69090             Re:Re:Re:어느 컴포넌트로 부터 이벤트가 발생했는지 알아내는..? 꼬부기 4248 2013/02/05
69092                 Re:Re:Re:Re:어느 컴포넌트로 부터 이벤트가 발생했는지 알아내는..? 짤팔이 1567 2013/02/05
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.