|
void __fastcall TfmMain::btTstClick(TObject *Sender)
{
String aStr;
TComponent *cmpt;
int i, nGb=0, nBt=0;
for(i=0;i<fmModule->ComponentCount;i++)
{
cmpt = fmModule->Components[i];
if(cmpt->ClassNameIs("TButton"))
{
TButton *src = (TButton *)cmpt;
bt[0][nBt] = new TButton(this);
bt[0][nBt]->Parent = fmMain;
bt[0][nBt]->OnClick = ButtonControl;
aStr.sprintf("%03d", nBt);
bt[0][nBt]->Name = "bt"+aStr;
nBt++;
}
}
}
//---------------------------------------------------------------------------
void __fastcall TfmMain::ButtonControl(TObject *Sender)
{
TBtn *bt;
String aCmp;
TComponent *cmpt;
aCmp = dynamic_cast<TBtn *>(Sender)->Name; ---+
cmpt = (TButton *)FindComponent(aCmp); ---+ 방법 1.
//bt = (TButton *)Sender; ---- 방법 2.
if(cmpt != NULL)
{
bt = (TButton *)cmpt;
}
}
//---------------------------------------------------------------------------
btTstClick 에서 버튼을 생성하구요
생성된버튼의 OnClick이벤트 함수인 ButtonControl에서
방법 1로는 aCmpt에 버튼 이름은 확인이되는데 FindComponent에서 는 NULL이 반환되어
찾아지질 않구요. 방법 2로는 되는데 어찌 찜찜하여 도움을 요청합니다.
|