TComponent::FindComponent - C++ Builder

C++ Builder 参考手册TComponentFindComponent


头文件:#include <System.Classes.hpp>
命名空间:System::Classes
类:TComponent
访问权限:public:
函数原型:

TComponent* __fastcall FindComponent(const System::UnicodeString AName);

System::Classes::TComponent::FindComponent 是 System::Classes::TComponent 的成员函数,通过名称 AName 查找子组件。

参数:

AName:子组件的名称。

返回值:

找到的子组件,或 NULL 未找到。

  • 通过名称 AName 查找子组件,不区分大小写;
  • FindComponent 可以找到不可见的控件,例如 TTimer,而 FindNextControl 和 FindChildControl 找到的都是可见的控件。

例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测试 FindComponent - 玄坴";
    }
}

运行结果:

运行结果:FindComponent 测试

例2:点击 Button2 找到 Timer1 控件,如果这个定时器启用了,就禁用,如果已经禁用,就启用。

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;
}

运行结果:

定时器启用时,每个定时周期都给 Label1 显示的数字+1,点击 Button2 之后 Label1 显示的数字停止变化,再点击一次 Button2,Label1 的数字继续+1变化。


参考:


C++ Builder 参考手册TComponentFindComponent

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。