델파이 또는 C++Builder개발자들이 많이 오해하는것 중에 하나가 있는데..
TForm은 그냥 클래스라는것입니다.
TForm1 은 TForm을 상속받은 클래스일뿐이구요
동적으로 어떤 컴포넌트를 생성했다고 하더라도 Form1의 메소드에 연결하든 Form2의 메소드레 연결하든
아님 Form클래스가 아닌 놈에 연결하든 ... 아무 상관없다는 얘기죠
그 동적생성된 컴포넌트의 이벤트 형식에 맞기만 하면....
예를 들어
class TMyThread : public TThread
{
//...
...
public:
void __fastcall OnMainFormButtonClick(TObject *Sender);
};
TMyThread *MyThread=NULL;
void __fastcall TForm1::FormCreate(TObject *Sender)
{
//
MyThread=new TMyThread(false);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TButton *btn=new TButton(this);
btn->Caption="asfdadsf";
btn->Parent=this->Panel1;
btn->OnClick=MyThread->OnMainFormButtonClick;
}
//---------------------------------------------------------------------------
그럼...
도상곤 님이 쓰신 글 :
: 동적생성을 하였을때 이벤트를 지정해줘야 하는데
:
: 예를들어 Form1에 동적생성을하고 Form2에 이벤트가 있다면
:
: 어떻게 해야 Form1에서 Form2의 이벤트를 사용할 수 있는지
:
: 알고싶습니다. 부탁드려요~
|