kenbcb 您好: 如果要符合您動態產生物件並能分別叫用它們的要求,或許可以使用TStringList的AddObject(.)方法,再以其屬性Objects[.]取得各個物件的指標,再透過型態轉換來使用該物件。
底下程式碼,先在Form上建立四個TButton及一個TEdit物件,將前三個加入(TStringList*) lst中;當點按第四個TButton時,將focus設到Edit1->Text中編號的TButton上。
提供參考。
![]()
< class="code">
//--------------------------------------------------------------------------- #include
#pragma hdrstop #include "TestAddObject0.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
TStringList *lst;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//--------------------------------------------------------------------------- void __fastcall TForm1::FormCreate(TObject *Sender)
{
lst = new TStringList();
lst->AddObject("btn1", Button1);
lst->AddObject("btn2", Button2);
lst->AddObject("btn3", Button3);
}
//--------------------------------------------------------------------------- void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
delete lst;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{
int n = StrToInt(Edit1->Text) - 1 ;
if ( n<0 || n>2 ) return;
((TEdit *)lst->Objects[n])->SetFocus();
}
//---------------------------------------------------------------------------
RichTop 敬上 =====*****
把數學當工具,可以解決問題;將數學變能力,能夠發現並解決問題!
=====##### 發表人 - richtop 於 2004/07/16 20:21:03