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
[7303] Re:Re:Re:Re:동적생성된 컴포넌트에 이벤트 발생시 자신이 만든 함수를 실행하려면 어떻게 해야 하나요??
이성수 [] 1791 읽음    2001-05-09 15:22
//------------------------------------------------------------------------------------------
il's 님 감사합니다!
il's 님도 즐프하세요! 꾸벅 ^^!
//----------------------------------------------------------------------------------------

il's 님이 쓰신 글 :
: 음.. 그것은.....
:
: ((TEdit *)Sender)->Text 이런식으로 얻으면 됩니다....
:
: 그럼 즐거운 프로그램하세요... ^^
:
:
:
: 이성수 님이 쓰신 글 :
: : 답변 주셔서 감사하구요 한가지 질문이 더 있습니다.
: :
: : 현재 KeyUp이 발생한 에디트 컴포넌트의 Text를 얻어서 처리해야 하는데
: : void __fastcall TForm1::UserKeyUp(TObject *Sender, WORD &Key, TShiftState Shift)
: : {
: :     처리 하고자 하는 내용.......
: :     MyFunction(현재이벤트가 발생한 에디트의 Text, Key);
: : }
: :
: : MyFunction(현재이벤트가 발생한 에디트의 Text, Key);은 이미 제가 만들었으니까,
: : //------------------------------------------------------------------------------------------------
: : *이벤트 발생시
: : *MyFunction의 첫번째 인자인 <현재이벤트가 발생한 에디트의 Text>를 어떻게 해야 얻을 수 있을까요?
: : *즉,<현재이벤트가 발생한 에디트의 Text>를 MyFunction의 첫번째 인자에 넣으려고 하는데
: : <현재이벤트가 발생한 에디트의 Text>를 어떻게 해야 얻을 수 있을까요?
: : 한수더 부탁 드려요! ^^;
: : //-------------------------------------------------------------------------------------------------
: :
: :
: :
: : il's 님이 쓰신 글 :
: : : 이성수님 안녕하세요... ^^
: : :
: : : 음..일단 내용 먼저 ......
: : :
: : : Header 파일 내용...
: : : //---------------------------------------------------------------------------
: : :
: : : #ifndef Unit1H
: : : #define Unit1H
: : : //---------------------------------------------------------------------------
: : : #include <Classes.hpp>
: : : #include <Controls.hpp>
: : : #include <StdCtrls.hpp>
: : : #include <Forms.hpp>
: : : #include <ExtCtrls.hpp>
: : : //---------------------------------------------------------------------------
: : : class TForm1 : public TForm
: : : {
: : : __published:    // IDE-managed Components
: : :     TButton *Button1;
: : :     void __fastcall Button1Click(TObject *Sender);
: : : private:    // User declarations
: : : public:        // User declarations
: : :     void __fastcall UserKeyUp(TObject *Sender, WORD &Key, TShiftState Shift);
: : :
: : :     __fastcall TForm1(TComponent* Owner);
: : : };
: : : //---------------------------------------------------------------------------
: : : extern PACKAGE TForm1 *Form1;
: : : //---------------------------------------------------------------------------
: : : #endif
: : :
: : :
: : : Cpp 파일 내용....
: : :
: : : //---------------------------------------------------------------------------
: : :
: : : #include <vcl.h>
: : : #pragma hdrstop
: : :
: : : #include "Unit1.h"
: : : //---------------------------------------------------------------------------
: : : #pragma package(smart_init)
: : : #pragma resource "*.dfm"
: : : TForm1 *Form1;
: : :
: : : //---------------------------------------------------------------------------
: : : __fastcall TForm1::TForm1(TComponent* Owner)
: : :     : TForm(Owner)
: : : {
: : : }
: : : //---------------------------------------------------------------------------
: : :
: : : void __fastcall TForm1::Button1Click(TObject *Sender)
: : : {
: : :     TEdit *UserEdit = new TEdit(this);
: : :     UserEdit->Parent = this;
: : :     UserEdit->Top = 100;
: : :     UserEdit->Left = 100;
: : :     UserEdit->OnKeyUp = UserKeyUp;
: : : }
: : : //---------------------------------------------------------------------------
: : :
: : : void __fastcall TForm1::UserKeyUp(TObject *Sender, WORD &Key, TShiftState Shift)
: : : {
: : :     처리 하고자 하는 내용.......
: : : }
: : :
: : : 위에서 보시면.. Buttom1Click 이벤트에서 동적으로 Edit 컴포넌트를 만든것입니다.
: : :
: : : 님도 어딘가에서 100개의 에디트 컴포넌트를 만든 곳이 있을것입니다.
: : :
: : : 그것에서.. OnKeyUp 이벤트을 하나의 이벤트에 묵어 주면됩니다..
: : :
: : : 그리고 이미 정의 되어 있는 이벤트에 대한 동적사용하고 싶을때는 그 이벤트의 형식과 똑같이 정의를 하여주고 사용하여야 합니다....
: : :
: : : 그럼 즐거운 프로그램하세요.....
: : :
: : :
: : :
: : :
: : :
: : : 이성수 님이 쓰신 글 :
: : : : 동적으로 에디트 컴포넌트를 100개 정도 만들고 입력키를 검사하는 루틴을 만들어서
: : : : OnKeyUp 이벤트 발생시 입력키 검사루틴을 실행하려고 합니다.
: : : :
: : : : 만약 툴에서는 이벤트처리를 한다면 Edit1에 대한 프로시저 함수가 다음과 같이 생성되죠
: : : :
: : : : MyFunction(AnsiString, WORD &);
: : : : //생성된 코드
: : : : void __fastcall TForm1::Edit1KeyUp(TObject *Sender, WORD &Key, TShiftState Shift)
: : : : {
: : : : //실행하고자 하는 루틴
: : : : MyFunction(Form1->Edit1->Text, Key);
: : : : }
: : : :
: : : : *제가 하고자하는 것은 1번쩨 인자인Form1->Edit1->Text, 2번쩨 인자인 WORD &Key를 가지고 실행되는
: : : : MyFunction(Form1->Edit->Text, Key); //MyFunction(AnsiString, WORD &);
: : : : 을 100개의 에디트 컴포넌트에 등록하고자 합니다.
: : : : 물론 1번째 인자는 각각의 에디트 컴포넌트의 Text이고, 2번째 인자인 Key는 OnKeyUp발생시의 가상Key값인
: : : : WORD Key이구요.
: : : :
: : : : 한수 부탁 드리고요! 이글을 읽어 주셔서 감사합니다.
: : : : ^^!
: : : :

+ -

관련 글 리스트
7294 동적생성된 컴포넌트에 이벤트 발생시 자신이 만든 함수를 실행하려면 어떻게 해야 하나요?? 이성수 1798 2001/05/09
7298     Re:동적생성된 컴포넌트에 이벤트 발생시 자신이 만든 함수를 실행하려면 어떻게 해야 하나요?? il's 1843 2001/05/09
7300         Re:Re:동적생성된 컴포넌트에 이벤트 발생시 자신이 만든 함수를 실행하려면 어떻게 해야 하나요?? 이성수 1735 2001/05/09
7301             Re:Re:Re:동적생성된 컴포넌트에 이벤트 발생시 자신이 만든 함수를 실행하려면 어떻게 해야 하나요?? il's 1799 2001/05/09
7303                 Re:Re:Re:Re:동적생성된 컴포넌트에 이벤트 발생시 자신이 만든 함수를 실행하려면 어떻게 해야 하나요?? 이성수 1791 2001/05/09
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.