TComponent - C++ Builder

C++ Builder 參考手冊 ? System::Classes ? TComponent


System::Classes::TComponent 是所有組件的公共父類。

  • System::Classes::TComponent 簡介
  • System::Classes::TComponent 成員
    ? 屬性
    ? 方法
    ? 事件
    ? 數(shù)據(jù)

一. System::Classes::TComponent 簡介

System::Classes::TComponent 是所有組件的公共父類。

  • 繼承關(guān)系:
    System::TObject
    ?╙ System::Classes::TPersistent
    ???┗ System::Classes::TComponent
  • 頭文件:#include <System.Classes.hpp>
  • 命名空間:System::Classes
  • 控件 TControl 是從 TComponent 繼承的子類,所以所有的控件也都是組件,組件包含了所有的控件;
  • 從 TControl 繼承的控件,運行的時候能夠顯示出來,這是 TControl 增加的功能,而 TComponent 并沒有處理顯示的代碼;
  • TComponent 是不同框架 (VCL/FMX) 都公有的類,在 System.Classes.hpp 里面,而 TControl 在不同的框架里面有不同的實現(xiàn),例如 Vcl::Controls::TControl 或 Fmx::Controls::TControl;
  • 一般情況編寫不同框架有不同實現(xiàn)的控件,都是根據(jù) Vcl::Controls::TControl 或 Fmx::Controls::TControl 來分組和注冊框架不同而類名相同的控件的,如果不同的框架實現(xiàn)相同的控件,即各個框架公有的,都是從 TComponent 繼承過來的組件。
  • 如果是繼承 TComponent 做的不需要顯示出來的組件,在不同的框架里面有不同的實現(xiàn),需要根據(jù) TControl 分組來區(qū)分框架,例如 ActivateClassGroup(__classid(Fmx::Controls::TControl));

二. System::Classes::TComponent 成員

1. System::Classes::TComponent 屬性

屬性 類型 說明
__published: ? ?
Name TComponentName 組件的名稱
Tag NativeInt 儲存一個 NativeInt 類型的數(shù)據(jù)
public: ? ?
ComObject _di_IInterface 控件的 COM 接口對象
Components TComponent *[int Index] 這個組件容納的第 Index 個子組件
ComponentCount int 這個組件容納的子組件的個數(shù)
ComponentIndex int 這個控件是他的擁有者的第幾個子組件
ComponentState TComponentState 組件的狀態(tài)
ComponentStyle TComponentStyle 組件的樣式
DesignInfo int 提供給畫面編輯器的信息 (設(shè)計時的位置)
Observers TObservers * 組件 LiveBindings 的 TObservers 對象
Owner TComponent 組件的擁有者
VCLComObject void * 組件的 COM 組件對象

2. System::Classes::TComponent 方法

方法 說明
public: ?
BeforeDestruction 檢查并調(diào)用 Destroying 方法
BeginInvoke 異步調(diào)用 AProc 或 AFunc
DestroyComponents 銷毀所有容納的子組件
Destroying 指示這個組件和它所有的子組件都將被銷毀
EndFunctionInvoke 等待異步執(zhí)行的函數(shù)的返回值
EndInvoke 等待異步執(zhí)行完成
ExecuteAction 執(zhí)行一個 Action
FindComponent 通過名稱查找子組件
FreeNotification 把這個組件將要被銷毀的信息通知給 AComponent
FreeOnRelease 調(diào)用 COM 接口的 Release 方法時,會調(diào)用這個方法
GetEnumerator 返回一個可以枚舉子組件的對象
GetParentComponent 返回 Parent (容器) 組件
GetNamePath 返回在 Object Inspector 屬性面板里面的名稱
HasParent 獲取這個組件是否放在了容器里面
InsertComponent 添加一個子組件
IsImplementorOf 返回當(dāng)前組件所支持的 COM 接口的引用
operator () 類型轉(zhuǎn)換操作符,轉(zhuǎn)為 _di_IInterface 類型
或者 _di_IInterfaceComponentReference 類型
ReferenceInterface 建立或移除內(nèi)部鏈接來通知這個組件
RemoveComponent 移除一個子組件
RemoveFreeNotification 把 FreeNotification 的通知信息去掉
SafeCallException 處理 COM 接口的異常
SetSubComponent 設(shè)置或清除 ComponentStyle 里面的 csSubComponent 樣式
TComponent 構(gòu)造函數(shù)。
~TComponent 析構(gòu)函數(shù)。
UpdateAction 更新 Action 的狀態(tài)
protected: ?
_AddRef 增加 COM 接口的引用計數(shù)
AsyncSchedule 把異步執(zhí)行添加到主線程的隊列里
CanObserve 返回 LiveBindings 的數(shù)據(jù)綁定類型是否支持
ChangeName 給組件改名
DefineProperties 把非 __published: 屬性和數(shù)據(jù)存入流中
GetChildren 枚舉所有的子組件
GetChildOwner 返回子組件的 Owner
GetChildParent 返回子組件的 Parent
GetDeltaStreams 初始化從父類繼承過來的組件成員時使用。
GetIDsOfNames 通過名字獲取 DISPID,用于調(diào)用 Invoke 方法
GetTypeInfoCount 返回 IDispatch 的類型信息個數(shù)
GetTypeInfo 返回 IDispatch 的類型信息
GetObservers Observers 屬性利用這個方法返回屬性值
GetOwner 返回對象的擁有者
Invoke 訪問 COM 對象的屬性和調(diào)用 COM 對象的方法
Loaded 當(dāng) Form 讀取到內(nèi)存的時候,初始化這個組件
Notification AComponent 發(fā)過來的創(chuàng)建或移除消息,會調(diào)用這個方法
ObserverAdded 添加 LiveBindings 數(shù)據(jù)綁定時會調(diào)用這個方法
PaletteCreated 組件在組件面板里面創(chuàng)建的時候,會調(diào)用這個方法
QueryInterface 返回當(dāng)前組件所支持的 COM 接口的引用
ReadState 從流中讀取組件的狀態(tài)
_Release 減少 COM 接口的引用計數(shù) / 銷毀對象
RemoveFreeNotifications 通知所有的 Owner 這個組件要被銷毀了
SetAncestor 清除或設(shè)置 ComponentState 屬性里面的 csAncestor 狀態(tài)
SetChildOrder 調(diào)整子組件的順序
SetDesigning 清除或設(shè)置 ComponentState 屬性里面的 csDesigning 狀態(tài)
SetDesignInstance 清除或設(shè)置 ComponentState 屬性里面的 csDesignInstance 狀態(tài)
SetInline 清除或設(shè)置 ComponentState 屬性里面的 csInline 狀態(tài)
SetName 給屬性 Name 賦值調(diào)用這個方法來修改組件名
SetParentComponent 設(shè)置組件的 Parent (容器組件)
Updated 清除 ComponentState 屬性里面的 csUpdating 狀態(tài)
Updating 設(shè)置 ComponentState 屬性里面的 csUpdating 狀態(tài)
UpdateRegistry 在注冊表里面添加 COM 組件類型庫信息
ValidateContainer 檢查組件是否可以放入一個組件當(dāng)作子組件
ValidateInsert 檢查一個組件是否可以放入當(dāng)前的組件作為子組件
ValidateRename 給組件改名時調(diào)用,檢查名稱是否有效
WriteState 把組件的狀態(tài)寫入流中
TPersistent:: TPersistent 繼承過來的
public: TPersistent 繼承過來的
Assign 把 Source 對象的所有的屬性和數(shù)據(jù)賦值到當(dāng)前對象
protected: ?
AssignTo 把當(dāng)前對象的所有屬性和數(shù)據(jù)都賦值到 Dest 對象
TObject:: System::TObject 繼承過來的
public: System::TObject 繼承過來的
AfterConstruction 在構(gòu)造函數(shù)結(jié)束的時候會自動調(diào)用 AfterConstruction
ClassInfo 返回運行時類型信息表 (RTTI table)
ClassName 獲取類名,不包含命名空間的類名字符串
ClassNameIs 判斷類名是否為參數(shù)指定的字符串
ClassParent 返回父類的類型信息
ClassType 返回類的類型信息
CleanupInstance 清除長字符串、Variants、接口變量等
DefaultHandler 默認(rèn)的消息處理
Dispatch 處理消息的函數(shù)
DisposeOf 強(qiáng)制銷毀對象
Equals 比較當(dāng)前對象和 Obj 對象是否相同
FieldAddress 通過成員名稱返回成員的地址
Free 銷毀對象 (Delphi)
FreeInstance 釋放 NewInstance 分配的內(nèi)存
GetHashCode 返回對象的 hash 值
GetInterface 獲取指定的接口
GetInterfaceEntry 獲取接口項目
GetInterfaceTable 獲取接口表
InheritsFrom 當(dāng)前對象的類是否從 AClass 繼承過來的
InitInstance 初始化成員,給他們清零
InstanceSize 返回給實例數(shù)據(jù)分配內(nèi)存需要多少字節(jié)數(shù)
MethodAddress 通過名稱返方法的地址
MethodName 通過方法的地址返回名稱
NewInstance 給實例分配內(nèi)存,并且返回新的實例的地址
QualifiedClassName 返回包含命名空間的類名
ToString 轉(zhuǎn)為字符串
UnitName 返回類所在的命名空間
UnitScope 返回類所在的命名空間

3. System::Classes::TComponent 事件

事件 說明
protected: ?
OnGetDeltaStreams 初始化從父類繼承過來的組件成員時產(chǎn)生的事件

4. System::Classes::TComponent 數(shù)據(jù)成員

數(shù)據(jù) 類型 說明
protected: ? ?
FComponentStyle TComponentStyle 儲存組件樣式,由組件內(nèi)部使用

相關(guān):


C++ Builder 參考手冊 ? System::Classes ? TComponent

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容