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
[7298] Re:동적생성된 컴포넌트에 이벤트 발생시 자신이 만든 함수를 실행하려면 어떻게 해야 하나요??
il's [] 1842 읽음    2001-05-09 14:46
이성수님 안녕하세요... ^^

음..일단 내용 먼저 ......

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 1842 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.