C++ Builder 參考手冊(cè) ? TComponent ? FindComponent
頭文件:#include <System.Classes.hpp>
命名空間:System::Classes
類(lèi):TComponent
訪問(wèn)權(quán)限:public:
函數(shù)原型:
TComponent* __fastcall FindComponent(const System::UnicodeString AName);
System::Classes::TComponent::FindComponent 是 System::Classes::TComponent 的成員函數(shù),通過(guò)名稱(chēng) AName 查找子組件。
參數(shù):
AName:子組件的名稱(chēng)门怪。
返回值:
找到的子組件芜抒,或 NULL 未找到。
- 通過(guò)名稱(chēng) AName 查找子組件,不區(qū)分大小寫(xiě)吭狡;
- FindComponent 可以找到不可見(jiàn)的控件尖殃,例如 TTimer,而 FindNextControl 和 FindChildControl 找到的都是可見(jiàn)的控件划煮。
例1:找到 Form 上的 Memo1 控件送丰,并且在找到的 Memo1 控件里面輸出文字
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TComponent *lpComponent = this->FindComponent(L"Memo1");
TMemo *lpMemo = dynamic_cast<TMemo *>(lpComponent);
if(lpMemo)
{
lpMemo->Text = L"找到了 Memo1!\r\n測(cè)試 FindComponent - 玄坴";
}
}
運(yùn)行結(jié)果:
例2:點(diǎn)擊 Button2 找到 Timer1 控件弛秋,如果這個(gè)定時(shí)器啟用了器躏,就禁用,如果已經(jīng)禁用蟹略,就啟用登失。
void __fastcall TForm1::Button2Click(TObject *Sender)
{
TComponent *lpComponent = this->FindComponent(L"Timer1");
TTimer *lpTimer = dynamic_cast<TTimer *>(lpComponent);
if(lpTimer)
{
lpTimer->Enabled = !lpTimer->Enabled;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
Label1->Caption = StrToIntDef(Label1->Caption, 0) + 1;
}
運(yùn)行結(jié)果:
定時(shí)器啟用時(shí),每個(gè)定時(shí)周期都給 Label1 顯示的數(shù)字+1挖炬,點(diǎn)擊 Button2 之后 Label1 顯示的數(shù)字停止變化揽浙,再點(diǎn)擊一次 Button2,Label1 的數(shù)字繼續(xù)+1變化意敛。
參考:
- Vcl::Controls::TWinControl::FindNextControl
- Vcl::Controls::TWinControl::FindChildControl
- System::Classes::TComponent::Components
- System::Classes::TComponent::ComponentCount
- System::Classes::TComponent::ComponentIndex
- System::Classes::TComponent
- System::Classes::TPersistent
- System::TObject
- VCL 類(lèi)繼承關(guān)系
C++ Builder 參考手冊(cè) ? TComponent ? FindComponent