|
이성수님 안녕하세요... ^^
음..일단 내용 먼저 ......
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이구요.
:
: 한수 부탁 드리고요! 이글을 읽어 주셔서 감사합니다.
: ^^!
:
|