现在的位置: 首页 > 综合 > 正文

Delphi TControl 类(1)

2018年05月27日 ⁄ 综合 ⁄ 共 28184字 ⁄ 字号 评论关闭

本文介绍Delphi类和组件之TControl 研究,TControl 中声明的 Parent 属性类似于 TComponent 中声明的 Owner 属性,因为 Parent 控件释放控件的过程就像 Owner 组件释放组件的过程。

Delphi 版本:Delphi XE2

TControl = class(TComponent) 
private
  { 属性:Parent 读 } 
  FParent: TWinControl;
  { 属性:WindowProc 读写 }
  FWindowProc: TWndMethod;
  { 属性:Left 读 }
  FLeft:Integer; 
  { 属性:Top 读 }
  FTop:Integer; 
  { 属性:Width 读 }
  FWidth:Integer; 
  { 属性:Height 读 }
  FHeight:Integer; 
  { 属性:ControlState 读写 }
  FControlStyle: TControlStyle;
  { 属性:ControlState 读写 }
  FControlState: TControlState;
  { 属性:DesktopFont 读 }
  FDesktopFont:Boolean; 
  { 属性:Visible 读 }
  FVisible:Boolean; 
  { 用于 Enabled 属性:用来存放控件的 Enabled 值 }
  FEnabled:Boolean; 
  { 属性:ParentFont 读 }
  FParentFont:Boolean; 
  { 属性:ParentColor 读 }
  FParentColor:Boolean; 
  { 属性:Align 读 }
  FAlign: TAlign;
  { 属性:AutoSize 读 }
  FAutoSize:Boolean; 
  { 用于 DragMode 属性:用来存放控件的 DragMode 值 }
  FDragMode: TDragMode;
  { 属性:IsControl 读写 }
  FIsControl:Boolean; 
  { 属性:BiDiMode 读 }
  FBiDiMode: TBiDiMode;
  { 属性:ParentBiDiMode 读 }
  FParentBiDiMode:Boolean; 
  { 属性:Anchors 读 }
  FAnchors: TAnchors;
  { 属性:Font 读 }
  FFont: TFont;
  { 属性:ActionLink 读写 }
  FActionLink: TControlActionLink;
  { 属性:Color 读 }
  FColor: TColor;
  { 属性:Constraints 读 }
  FConstraints: TSizeConstraints;
  { 属性:Margins 读 }
  FMargins: TMargins;
  { 属性:Cursor 读 }
  FCursor: TCursor;
  { 属性:DragCursor 读写 }
  FDragCursor: TCursor;
  { 属性:PopupMenu 读 }
  FPopupMenu: TPopupMenu;
  { 属性:Hint 读写 }
  FHint:string; 
  { 用于 ScalingFlags 属性:在 FontChanged 过程中根据 FFontHeight 改变 ScalingFlags 的值 }
  FFontHeight:Integer; 
  { 属性:ScalingFlags 读写 }
  FScalingFlags: TScalingFlags;
  { 属性:ShowHint 读 }
  FShowHint:Boolean; 
  { 属性:ParentShowHint 读 }
  FParentShowHint:Boolean; 
  { 属性:DragKind 读写 }
  FDragKind: TDragKind;
  { 属性:DockOrientation 读写 }
  FDockOrientation: TDockOrientation;
  { 属性:HostDockSite 读 }
  FHostDockSite: TWinControl;
  { 属性:WheelAccumulator 读写 }
  FWheelAccumulator:Integer; 
  { 属性:UndockWidth 写 }
  FUndockWidth:Integer; 
  { 属性:UndockHeight 写 }
  FUndockHeight:Integer; 
  { 属性:LRDockWidth 写 }
  FLRDockWidth:Integer; 
  { 属性:TBDockHeight 写 }
  FTBDockHeight:Integer; 
  { 属性:FloatingDockSiteClass 写 }
  FFloatingDockSiteClass: TWinControlClass;
  { 属性:TouchManager 读 }
  FTouchManager: TTouchManager;
  { 属性:OnCanResize 读写 }
  FOnCanResize: TCanResizeEvent;
  { 属性:OnConstrainedResize 读写 }
  FOnConstrainedResize: TConstrainedResizeEvent;
  { 属性:OnMouseDown 读写 }
  FOnMouseDown: TMouseEvent;
  { 属性:OnMouseMove 读写 }
  FOnMouseMove: TMouseMoveEvent;
  { 属性:OnMouseUp 读写 }
  FOnMouseUp: TMouseEvent;
  { 属性:OnDragDrop 读写 }
  FOnDragDrop: TDragDropEvent;
  { 属性:OnDragOver 读写 }
  FOnDragOver: TDragOverEvent;
  { 属性:OnResize 读写 }
  FOnResize: TNotifyEvent;
  { 属性:OnStartDock 读写 }
  FOnStartDock: TStartDockEvent;
  { 属性:OnEndDock 读写 }
  FOnEndDock: TEndDragEvent;
  { 属性:OnStartDrag 读写 }
  FOnStartDrag: TStartDragEvent;
  { 属性:OnEndDrag 读写 }
  FOnEndDrag: TEndDragEvent;
  { 属性:OnClick 读写 }
  FOnClick: TNotifyEvent;
  { 属性:OnDblClick 读写 }
  FOnDblClick: TNotifyEvent;
  { 属性:OnContextPopup 读写 }
  FOnContextPopup: TContextPopupEvent;
  { 属性:OnMouseActivate 读写 }
  FOnMouseActivate: TMouseActivateEvent;
  { 属性:OnMouseLeave 读写 }
  FOnMouseLeave: TNotifyEvent;
  { 属性:OnMouseEnter 读写 }
  FOnMouseEnter: TNotifyEvent;
  { 属性:OnMouseWheel 读写 }
  FOnMouseWheel: TMouseWheelEvent;
  { 属性:OnMouseWheelDown 读写 }
  FOnMouseWheelDown: TMouseWheelUpDownEvent;
  { 属性:OnMouseWheelUp 读写 }
  FOnMouseWheelUp: TMouseWheelUpDownEvent;
  { 属性:OnGesture 读写 }
  FOnGesture: TGestureEvent;
  { 属性:HelpType 读写 }
  FHelpType: THelpType;
  { 属性:HelpKeyword 读 }
  FHelpKeyword:string; 
  { 属性: HelpContext 读 }
  FHelpContext: THelpContext;
  { 用于 CustomHint 属性:用来存放控件的 CustomHint 值 }
  FCustomHint: TCustomHint;
  { 属性:ParentCustomHint 读 }
  FParentCustomHint:Boolean; 
  { 属性:WindowText 读写 }
  FText:PChar; 
  { 属性:CustomHint 读 }
  functionGetCustomHint: TCustomHint; 
  {  }
  procedureCalcDockSizes; 
  {  }
  functionCheckNewSize(varNewWidth, NewHeight: Integer):Boolean; 
  {  }
  functionCreateFloatingDockSite(Bounds: TRect): TWinControl; 
  {  }
  procedureDoActionChange(Sender: TObject); 
  {  }
  functionDoCanAutoSize(varNewWidth, NewHeight: Integer):Boolean; 
  {  }
  functionDoCanResize(varNewWidth, NewHeight: Integer):Boolean; 
  {  }
  procedureDoConstraintsChange(Sender: TObject); 
  {  }
  procedureDoConstrainedResize(varNewWidth, NewHeight: Integer);
  {  }
  procedureDoDragMsg(varDragMsg: TCMDrag); 
  {  }
  procedureDoMouseActivate(varMessage: TCMMouseActivate); 
  {  }
  procedureDoMouseDown(varMessage: TWMMouse; Button: TMouseButton; Shift: TShiftState);
  {  }
  procedureDoMouseUp(varMessage: TWMMouse; Button: TMouseButton); 
  {  }
  procedureDoMarginChange(Sender: TObject); 
  {  }
  procedureFontChanged(Sender: TObject); 
  { 属性:AlignWithMargins 读 }
  functionGetAlignWithMargins: Boolean; inline;
  { 属性:BoundsRect 读 }
  functionGetBoundsRect: TRect; 
  { 属性:ClientHeight 读 }
  functionGetClientHeight: Integer;
  { 属性:ClientWidth 读 }
  functionGetClientWidth: Integer;
  { 属性:LRDockWidth 读 }
  functionGetLRDockWidth: Integer;
  { 属性:MouseCapture 读 }
  functionGetMouseCapture: Boolean;
  { 属性:TBDockHeight 读 }
  functionGetTBDockHeight: Integer;
  { 属性:UndockWidth 读 }
  functionGetUndockWidth: Integer;
  { 属性:UndockHeight 读 }
  functionGetUndockHeight: Integer;
  {  }
  procedureInvalidateControl(IsVisible, IsOpaque: Boolean);
  {  }
  functionIsAnchorsStored: Boolean;
  {  }
  functionIsBiDiModeStored: Boolean;
  {  }
  functionIsCaptionStored: Boolean;
  {  }
  functionIsColorStored: Boolean;
  {  }
  functionIsEnabledStored: Boolean;
  {  }
  functionIsFontStored: Boolean;
  {  }
  functionIsHintStored: Boolean;
  {  }
  functionIsHelpContextStored: Boolean;
  {  }
  functionIsOnClickStored: Boolean;
  {  }
  functionIsShowHintStored: Boolean;
  {  }
  functionIsVisibleStored: Boolean;
  {  }
  procedureReadIsControl(Reader: TReader); 
  {  }
  procedureReadExplicitLeft(Reader: TReader); 
  {  }
  procedureReadExplicitTop(Reader: TReader); 
  {  }
  procedureReadExplicitWidth(Reader: TReader); 
  {  }
  procedureReadExplicitHeight(Reader: TReader); 
  { 属性:AlignWithMargins 写 }
  procedureSetAlignWithMargins(Value: Boolean);
  { 属性:Anchors 写 }
  procedureSetAnchors(Value: TAnchors); 
  { 属性:Action 写 }
  procedureSetAction(Value: TBasicAction); 
  { 属性:Align 写 }
  procedureSetAlign(Value: TAlign); 
  { 属性:BoundsRect 写 }
  procedureSetBoundsRect(constRect: TRect); 
  { 属性:ClientHeight 写 }
  procedureSetClientHeight(Value: Integer);
  {  }
  procedureSetClientSize(Value: TPoint); 
  { 属性:ClientWidth 写 }
  procedureSetClientWidth(Value: Integer);
  { 属性:Color 写 }
  procedureSetColor(Value: TColor); 
  { 属性:Cursor 写 }
  procedureSetCursor(Value: TCursor); 
  { 属性:DesktopFont 写 }
  procedureSetDesktopFont(Value: Boolean);
  { 属性:Font 写 }
  procedureSetFont(Value: TFont); 
  { 属性:Height 写 }
  procedureSetHeight(Value: Integer);
  { 属性:HelpContext 写 }
  procedureSetHelpContext(constValue: THelpContext); 
  { 属性:HelpKeyword 写 }
  procedureSetHelpKeyword(constValue: string);
  { 属性:HostDockSite 写 }
  procedureSetHostDockSite(Value: TWinControl); 
  { 属性:Left 写 }
  procedureSetLeft(Value: Integer);
  { 属性:MouseCapture 写 }
  procedureSetMouseCapture(Value: Boolean);
  { 属性:ParentColor 写 }
  procedureSetParentColor(Value: Boolean);
  { 属性:ParentFont 写 }
  procedureSetParentFont(Value: Boolean);
  { 属性:ShowHint 写 }
  procedureSetShowHint(Value: Boolean);
  { 属性:ParentShowHint 写 }
  procedureSetParentShowHint(Value: Boolean);
  { 属性:ParentCustomHint 写 }
  procedureSetParentCustomHint(Value: Boolean);
  { 属性:SetPopupMenu 写 }
  procedureSetPopupMenu(Value: TPopupMenu); 
  { 属性:Top 写 }
  procedureSetTop(Value: Integer);
  { 属性:Visible 写 }
  procedureSetVisible(Value: Boolean);
  { 属性:Width 写 }
  procedureSetWidth(Value: Integer);
  {  }
  procedureSetZOrderPosition(Position: Integer);
  {  }
  procedureUpdateAnchorRules; 
  {  }
  procedureWriteIsControl(Writer: TWriter); 
  {  }
  procedureWriteExplicitLeft(Writer: TWriter); 
  {  }
  procedureWriteExplicitTop(Writer: TWriter); 
  {  }
  procedureWriteExplicitWidth(Writer: TWriter); 
  {  }
  procedureWriteExplicitHeight(Writer: TWriter); 
  {  }
  procedureWMLButtonDown(varMessage: TWMLButtonDown); message WM_LBUTTONDOWN; 
  {  }
  procedureWMNCLButtonDown(varMessage: TWMNCLButtonDown); message WM_NCLBUTTONDOWN; 
  {  }
  procedureWMRButtonDown(varMessage: TWMRButtonDown); message WM_RBUTTONDOWN; 
  {  }
  procedureWMMButtonDown(varMessage: TWMMButtonDown); message WM_MBUTTONDOWN; 
  {  }
  procedureWMLButtonDblClk(varMessage: TWMLButtonDblClk); message WM_LBUTTONDBLCLK; 
  {  }
  procedureWMRButtonDblClk(varMessage: TWMRButtonDblClk); message WM_RBUTTONDBLCLK; 
  {  }
  procedureWMMButtonDblClk(varMessage: TWMMButtonDblClk); message WM_MBUTTONDBLCLK; 
  {  }
  procedureWMMouseMove(varMessage: TWMMouseMove); message WM_MOUSEMOVE; 
  {  }
  procedureWMLButtonUp(varMessage: TWMLButtonUp); message WM_LBUTTONUP; 
  {  }
  procedureWMRButtonUp(varMessage: TWMRButtonUp); message WM_RBUTTONUP; 
  {  }
  procedureWMMButtonUp(varMessage: TWMMButtonUp); message WM_MBUTTONUP; 
  {  }
  procedureWMMouseWheel(varMessage: TWMMouseWheel); message WM_MOUSEWHEEL; 
  {  }
  procedureWMCancelMode(varMessage: TWMCancelMode); message WM_CANCELMODE; 
  {  }
  procedureWMWindowPosChanged(varMessage: TWMWindowPosChanged); message WM_WINDOWPOSCHANGED;
  {  }
  procedureCMVisibleChanged(varMessage: TMessage); message CM_VISIBLECHANGED; 
  {  }
  procedureCMEnabledChanged(varMessage: TMessage); message CM_ENABLEDCHANGED; 
  {  }
  procedureCMFontChanged(varMessage: TMessage); message CM_FONTCHANGED; 
  {  }
  procedureCMColorChanged(varMessage: TMessage); message CM_COLORCHANGED; 
  {  }
  procedureCMMouseActivate(varMessage: TCMMouseActivate); message CM_MOUSEACTIVATE; 
  {  }
  procedureCMParentFontChanged(varMessage: TCMParentFontChanged); message CM_PARENTFONTCHANGED;
  {  }
  procedureCMSysFontChanged(varMessage: TMessage); message CM_SYSFONTCHANGED; 
  {  }
  procedureCMParentColorChanged(varMessage: TMessage); message CM_PARENTCOLORCHANGED; 
  {  }
  procedureCMParentShowHintChanged(varMessage: TMessage); message CM_PARENTSHOWHINTCHANGED; 
  {  }
  procedureCMHintShow(varMessage: TCMHintShow); message CM_HINTSHOW; 
  {  }
  procedureCMHitTest(varMessage: TCMHitTest); message CM_HITTEST; 
  {  }
  procedureCMMouseEnter(varMessage: TMessage); message CM_MOUSEENTER; 
  {  }
  procedureCMMouseLeave(varMessage: TMessage); message CM_MOUSELEAVE; 
  {  }
  procedureCMDesignHitTest(varMessage: TCMDesignHitTest); message CM_DESIGNHITTEST; 
  {  }
  procedureCMBiDiModeChanged(varMessage: TMessage); message CM_BIDIMODECHANGED; 
  {  }
  procedureCMParentBiDiModeChanged(varMessage: TMessage); message CM_PARENTBIDIMODECHANGED; 
  {  }
  procedureCMMouseWheel(varMessage: TCMMouseWheel); message CM_MOUSEWHEEL; 
  {  }
  procedureCMGesture(varMessage: TCMGesture); message CM_GESTURE; 
  {  }
  procedureWMContextMenu(varMessage: TWMContextMenu); message WM_CONTEXTMENU; 
  {  }
  procedureCMParentTabletOptionsChanged(varMessage: TMessage); message CM_PARENTTABLETOPTIONSCHANGED;
  { 属性:Constraints 写 }
  procedureSetConstraints(constValue: TSizeConstraints); 
  { 属性:Margins 写 }
  procedureSetMargins(constValue: TMargins); 
  { 属性:TouchManager 写 }
  procedureSetTouchManager(constValue: TTouchManager); 
  { 属性:Text 和 Caption 读 }
  functionGetText: TCaption; 
  { 属性:Text 和 Caption 写 }
  procedureSetText(constValue: TCaption); 
  {  }
  procedureCMFloat(varMessage: TCMFloat); message CM_FLOAT; 
protected
  {  }
  FAnchorMove:Boolean; 
  {  }
  FAnchorRules: TPoint;
  {  }
  FAnchorOrigin: TPoint;
  {  }
  FOriginalParentSize: TPoint;
  { 属性:ExplicitLeft 只读 }
  FExplicitLeft:Integer; 
  { 属性:ExplicitTop 只读 }
  FExplicitTop:Integer; 
  { 属性:ExplicitWidth 只读 }
  FExplicitWidth:Integer; 
  { 属性:ExplicitHeight 只读 }
  FExplicitHeight:Integer; 
  {  }
  FReserved: TReservedControlData;{ 内部使用,用户不要调用 }
  {  }
  procedureActionChange(Sender: TObject; CheckDefaults: Boolean); dynamic;
  {  }
  procedureAdjustSize; dynamic; 
  {  }
  procedureAssignTo(Dest: TPersistent); override; 
  {  }
  procedureBeginAutoDrag; dynamic; 
  {  }
  functionCanResize(varNewWidth, NewHeight: Integer):Boolean; virtual;
  {  }
  functionCanAutoSize(varNewWidth, NewHeight: Integer):Boolean; virtual;
  {  }
  procedureChanged; 
  {  }
  procedureChangeScale(M, D: Integer); dynamic;
  {  }
  procedureClick; dynamic; 
  {  }
  procedureConstrainedResize(varMinWidth, MinHeight, MaxWidth, MaxHeight: Integer); virtual;
  {  }
  functionCalcCursorPos: TPoint; 
  {  }
  procedureCreateTouchManager; virtual; 
  {  }
  procedureDblClick; dynamic; 
  {  }
  procedureDefaultDockImage(DragDockObject: TDragDockObject; Erase:Boolean); dynamic;
  {  }
  procedureDefineProperties(Filer: TFiler); override; 
  {  }
  procedureDockTrackNoTarget(Source: TDragDockObject; X, Y: Integer); dynamic;
  {  }
  procedureDoContextPopup(MousePos: TPoint; varHandled: Boolean); dynamic;
  {  }
  procedureDoEndDock(Target: TObject; X, Y: Integer); dynamic;
  {  }
  procedureDoDock(NewDockSite: TWinControl; varARect: TRect); dynamic; 
  {  }
  procedureDoStartDock(varDragObject: TDragObject); dynamic; 
  {  }
  functionDoMouseWheel(Shift: TShiftState; WheelDelta: Integer; MousePos: TPoint):Boolean; dynamic;
  {  }
  functionDoMouseWheelDown(Shift: TShiftState; MousePos: TPoint):Boolean; dynamic;
  {  }
  functionDoMouseWheelUp(Shift: TShiftState; MousePos: TPoint): Boolean; dynamic; 
  {  }
  procedureDragCanceled; dynamic; 
  {  }
  procedureDragOver(Source: TObject; X, Y: Integer; State: TDragState;var Accept:Boolean); dynamic;
  {  }
  procedureDoEndDrag(Target: TObject; X, Y: Integer); dynamic;
  {  }
  procedureDoStartDrag(varDragObject: TDragObject); dynamic; 
  {  }
  procedureDoGesture(constEventInfo: TGestureEventInfo; varHandled: Boolean); virtual;
  {  }
  procedureDoGetGestureOptions(varGestures: TInteractiveGestures; varOptions: TInteractiveGestureOptions); virtual; 
  {  }
  procedureDrawDragDockImage(DragDockObject: TDragDockObject); dynamic;
  {  }
  procedureEraseDragDockImage(DragDockObject: TDragDockObject); dynamic;
  { 属性:Action 读 }
  functionGetAction: TBasicAction; virtual; 
  {  }
  functionGetActionLinkClass: TControlActionLinkClass; dynamic; 
  { 属性:ClientOrigin 只读 }
  functionGetClientOrigin: TPoint; virtual; 
  { 属性:ClientRect 只读 }
  functionGetClientRect: TRect; virtual; 
  {  }
  functionGetDeviceContext(varWindowHandle: HWND): HDC; overload; virtual; 
  {  }
  functionGetDockEdge(MousePos: TPoint): TAlign; dynamic; 
  { 属性:Enabled 读 }
  functionGetEnabled: Boolean; virtual;
  { 属性:Floating 只读 }
  functionGetFloating: Boolean; virtual;
  { 属性:FloatingDockSiteClass 读 }
  functionGetFloatingDockSiteClass: TWinControlClass; virtual; 
  {  }
  functionGetPalette: HPALETTE; dynamic; 
  {  }
  functionGetPopupMenu: TPopupMenu; dynamic; 
  { 属性:DragMode 读 }
  functionGetDragMode: TDragMode; 
  {  }
  functionIsTouchPropertyStored(AProperty: TTouchProperty): Boolean; dynamic; 
  {  }
  procedureLoaded; override; 
  {  }
  functionMouseActivate(Button: TMouseButton; Shift: TShiftState; X, Y:Integer; HitTest:Integer): TMouseActivate; dynamic;
  {  }
  procedureMouseDown(Button: TMouseButton; Shift: TShiftState; X, Y:Integer); dynamic;
  {  }
  procedureMouseMove(Shift: TShiftState; X, Y: Integer); dynamic;
  {  }
  procedureMouseUp(Button: TMouseButton; Shift: TShiftState; X, Y:Integer); dynamic;
  {  }
  procedureNotification(AComponent: TComponent; Operation: TOperation); override;
  {  }
  procedurePositionDockRect(DragDockObject: TDragDockObject); dynamic;
  {  }
  functionPaletteChanged(Foreground: Boolean):Boolean; dynamic;
  {  }
  procedureReadState(Reader: TReader); override; 
  {  }
  procedureRequestAlign; virtual; 
  {  }
  procedureResize; dynamic; 
  {  }
  procedureScaleConstraints(M, D: Integer);
  {  }
  procedureScaleMargins(M, D: Integer);
  {  }
  procedureSendCancelMode(Sender: TControl); 
  {  }
  procedureSendDockNotification(Msg: Cardinal; WParam, LParam: THandle);
  { 属性:AutoSize 写 }
  procedureSetAutoSize(Value: Boolean); virtual;
  { 属性:DragMode 写 }
  procedureSetDragMode(Value: TDragMode); virtual; 
  { 属性:Enabled 写 }
  procedureSetEnabled(Value: Boolean); virtual;
  {  }
  procedureSetName(constValue: TComponentName); override; 
  { 属性:Parent 写 }
  procedureSetParent(AParent: TWinControl); virtual; 
  { 属性:ParentBiDiMode 写 }
  procedureSetParentBiDiMode(Value: Boolean); virtual;
  { 属性:BiDiMode 写 }
  procedureSetBiDiMode(Value: TBiDiMode); virtual; 
  {  }
  procedureSetZOrder(TopMost: Boolean); dynamic;
  { 属性:CustomHint 写 }
  procedureSetCustomHint(Value: TCustomHint); 
  {  }
  procedureUpdateExplicitBounds; 
  {  }
  procedureUpdateBoundsRect(constR: TRect); 
  {  }
  procedureVisibleChanging; dynamic; 
  {  }
  procedureWndProc(varMessage: TMessage); virtual; 
  {  }
  functionDesignWndProc(varMessage: TMessage): Boolean; dynamic;
  {  }
  functionGetDragImages: TDragImageList; virtual; 
  { 属性:包含与控件相关的 ActionLink 对象,ActionLink 对象用来处理控件与 Action 之间的关联 }
  propertyActionLink: TControlActionLink read FActionLink write FActionLink;
  { 属性:指定控件是否自动调整其大小以适应其包含的内容 }
  propertyAutoSize: Booleanread FAutoSize writeSetAutoSize default False;
  { 属性:指定一个与控件相关的字符串,通常根据不同的控件类型,分别使用 Caption 和 Text 来显示控件的字符串 }
  propertyCaption: TCaption read GetText writeSetText stored IsCaptionStored; 
  { 属性:指定控件是否使用 Windows 的图标字体作为自身的字体属性,通过 Screen.IconFont 可以获取 Windows 的图标字体(Windows 的图标字体就是 Windows 中各个图标下面的文字的字体) }
  propertyDesktopFont: Booleanread FDesktopFont writeSetDesktopFont default False;
  { 属性:指定拖拽控件时,是执行正常拖放,还是执行停靠操作 }
  propertyDragKind: TDragKind read FDragKind writeFDragKind default dkDrag; 
  { 属性:指定当控件被拖拽时的鼠标指针形状 }
  propertyDragCursor: TCursor read FDragCursor writeFDragCursor default crDrag; 
  { 属性:指定控件如何启用拖拽操作(dmAutomatic:当用户拖动控件时自动开始拖放操作;dmAutomatic:控件不能拖,直到应用程序调用 BeginDrag 的方法 }
  propertyDragMode: TDragMode read GetDragMode writeSetDragMode default dmManual; 
  { 属性:IsControl 可以使窗体变成一个特殊的控件,而不是一个窗体,这将影响窗体的保存方式 }
  propertyIsControl: Booleanread FIsControl writeFIsControl; 
  { 属性:指定控件是否已经“捕获”鼠标事件,当用户拖动控件中的项目时,控件将捕获鼠标 }
  propertyMouseCapture: Booleanread GetMouseCapture writeSetMouseCapture; 
  { 属性:指定控件是否使用其 Parent 控件的 BiDiMode 属性 }
  propertyParentBiDiMode: Booleanread FParentBiDiMode writeSetParentBiDiMode default True;
  { 属性:指定控件是否使用其 Parent 控件的 Color 属性 }
  propertyParentColor: Booleanread FParentColor writeSetParentColor default True;
  { 属性:指定控件是否使用其 Parent 控件的 Font 属性 }
  propertyParentFont: Booleanread FParentFont writeSetParentFont default True;
  { 属性:指定控件是否使用其 Parent 控件的 ShowHint 属性 }
  propertyParentShowHint: Booleanread FParentShowHint writeSetParentShowHint default True;
  { 属性:指定与控件相关的弹出式菜单 }
  propertyPopupMenu: TPopupMenu read FPopupMenu writeSetPopupMenu; 
  { 属性:指定控件的哪些属性被缩放,Delphi 内部使用,用户无需调用 }
  propertyScalingFlags: TScalingFlags read FScalingFlags write FScalingFlags;
  { 属性:指定一个与控件相关的字符串,通常根据不同的控件类型,分别使用 Caption 和 Text 来显示控件的字符串 }
  propertyText: TCaption read GetText writeSetText; 
  { 属性:指定鼠标一次滚动的进展 }
  propertyWheelAccumulator: Integerread FWheelAccumulator writeFWheelAccumulator; 
  { 属性:指定控件的背景色 }
  propertyColor: TColor read FColor writeSetColor stored IsColorStored default clWindow; 
  { 属性:指定控件的字体 }
  propertyFont: TFont read FFont writeSetFont stored IsFontStored; 
  { 属性:等同于 Text,为了给不同控件提供不同的用途 }
  propertyWindowText: PCharread FText writeFText; 
  { 事件:当试图改变控件尺寸时触发。如果在 OnCanResize 中未禁止调整尺寸,则其后紧接着 OnConstrainedResize 事件 }
  propertyOnCanResize: TCanResizeEvent read FOnCanResize write FOnCanResize;
  { 属性:当用户单击控件时触发。如果控件拥有一个 Action,而且该 Action 有一个 OnExecute 方法,则这个 OnExecute 方法将与控件的单击事件相关联,除非控件明确制定一个 OnClick 事件。下列事件也被认为是 OnClick 事件:当用户通过键盘的方向键来选择类似于表格、列表框、组合框中的项目时;当一个按钮或复选框具有焦点时,用户按下空格键;当窗体有默认按钮(Default)时,按下回车键;当窗体有取消按钮(Cancel)时,按下 Esc 键;当用户按下按钮或复选框的快捷键(例如 Alt + B)时;当单选钮的 Checked 属性为 True 时;当复选框的 Checked 属性发生变化时;当调用菜单项的 Click 方法时;当用户单击一个窗体的空白区域或单击窗体中被禁用的控件时,将触发窗体的 OnClick 事件 }
  propertyOnClick: TNotifyEvent read FOnClick writeFOnClick stored IsOnClickStored; 
  { 属性:OnCanResize 之后紧跟着 OnConstrainedResize,用来限制控件的可调整尺寸范围 }
  propertyOnConstrainedResize: TConstrainedResizeEvent read FOnConstrainedResizewrite FOnConstrainedResize;
  { 属性:当用户通过点击鼠标右键或其它方式(比如键盘的 Shift + F10 或 Application 键)打开弹出式菜单时触发(无论控件有没有指定弹出式菜单)。注意:Parent 控件比 Child 控件先接收到 OnContextPopup 事件,此外,默认的窗口过程会让许多 Child 控件比 Parent 控件先接收到 OnContextPopup 事件。因此,当处理完一个 OnContextPopup 消息后,如果不将消息中的 Handled 参数设置为 True,则该消息会继续向后传递 }
  propertyOnContextPopup: TContextPopupEvent read FOnContextPopupwrite FOnContextPopup;
  { 属性:当用户双击控件时触发 }
  propertyOnDblClick: TNotifyEvent read FOnDblClick writeFOnDblClick; 
  { 属性:当用户在一个控件上放下正被拖动的对象时,触发该控件的 OnDragDrop 事件 }
  propertyOnDragDrop: TDragDropEvent read FOnDragDrop writeFOnDragDrop; 
  { 属性:当用户拖动对象经过一个控件时,触发该控件的 OnDragOver 事件。注意 OnDragOver 的 Accept 参数默认为 True,表示控件接收拖放操作,如果控件没有指定 OnDragOver 事件,则该控件不接收拖放操作 }
  propertyOnDragOver: TDragOverEvent read FOnDragOver writeFOnDragOver; 
  { 属性:当控件被停靠或取消停靠时触发 }
  propertyOnEndDock: TEndDragEvent read FOnEndDock writeFOnEndDock; 
  { 属性:当控件被放下或取消拖放时触发 }
  propertyOnEndDrag: TEndDragEvent read FOnEndDrag writeFOnEndDrag; 
  { 属性:当一个控件所在的窗体为非激活状态,而通过鼠标点击该控件来激活窗体时触发该控件的 OnMouseActivate 事件。该控件在处理完 OnMouseActivate 事件后,如果不修改该事件的 MouseActivate 参数,仍然保留其默认值 maDefault,则该消息会继续向 Parent 传递。某些控件在收到按钮的单击事件后会自动激活窗体,而不理会 MouseActivate 的 maNoActive 值 }
  propertyOnMouseActivate: TMouseActivateEvent read FOnMouseActivatewrite FOnMouseActivate;
  { 属性:当用户在控件上按下鼠标按键时触发 }
  propertyOnMouseDown: TMouseEvent read FOnMouseDown writeFOnMouseDown; 
  { 属性:当用户将鼠标移入当前控件的范围时触发一次 }
  propertyOnMouseEnter: TNotifyEvent read FOnMouseEnter writeFOnMouseEnter; 
  { 属性:当用户将鼠标移出当前控件的范围时触发一次 }
  propertyOnMouseLeave: TNotifyEvent read FOnMouseLeave writeFOnMouseLeave; 
  { 属性:当用户在控件上移动鼠标时触发 }
  propertyOnMouseMove: TMouseMoveEvent read FOnMouseMove write FOnMouseMove;
  { 属性:当用户在控件上松开鼠标按键时触发 }
  propertyOnMouseUp: TMouseEvent read FOnMouseUp writeFOnMouseUp; 
  { 属性:当用户在控件上滚动鼠标滚轮时触发 }
  propertyOnMouseWheel: TMouseWheelEvent read FOnMouseWheel write FOnMouseWheel;
  { 属性:当用户在控件上向下滚动鼠标滚轮时触发 }
  propertyOnMouseWheelDown: TMouseWheelUpDownEvent read FOnMouseWheelDownwrite FOnMouseWheelDown;
  { 属性:当用户在控件上向上滚动鼠标滚轮时触发 }
  propertyOnMouseWheelUp: TMouseWheelUpDownEvent read FOnMouseWheelUpwrite FOnMouseWheelUp;
  { 属性:控件尺寸被改变时触发 }
  propertyOnResize: TNotifyEvent read FOnResize writeFOnResize; 
  { 属性:当控件的 DragKind 属性值为 dkDock 而且开始拖动控件时触发 }
  propertyOnStartDock: TStartDockEvent read FOnStartDock write FOnStartDock;
  { 属性:当控件的 DragKind 属性值为 dkDrag 而且开始拖动控件时触发 }
  propertyOnStartDrag: TStartDragEvent read FOnStartDrag write FOnStartDrag;
public
  {  }
  constructorCreate(AOwner: TComponent); override; 
  {  }
  destructorDestroy; override; 
  {  }
  procedureBeginDrag(Immediate: Boolean; Threshold:Integer = -1);
  {  }
  procedureBringToFront; 
  {  }
  functionClientToScreen(constPoint: TPoint): TPoint; 
  {  }
  functionClientToParent(constPoint: TPoint; AParent: TWinControl = nil): TPoint;
  {  }
  procedureDock(NewDockSite: TWinControl; ARect: TRect); dynamic;
  {  }
  functionDragging: Boolean;
  {  }
  procedureDragDrop(Source: TObject; X, Y: Integer); dynamic;
  {  }
  functionDrawTextBiDiModeFlags(Flags: Longint):Longint; 
  {  }
  functionDrawTextBiDiModeFlagsReadingOnly: Longint;
  { 属性:指定控件是否响应鼠标、键盘和计时器事件,部分控件被禁用后,外观将变暗 }
  propertyEnabled: Booleanread GetEnabled writeSetEnabled stored IsEnabledStored default True;
  {  }
  procedureEndDrag(Drop: Boolean);
  {  }
  functionGetControlsAlignment: TAlignment; dynamic; 
  {  }
  functionGetParentComponent: TComponent; override; 
  {  }
  functionHasParent: Boolean; override;
  {  }
  procedureHide; 
  {  }
  procedureInitiateAction; virtual; 
  {  }
  procedureInvalidate; virtual; 
  {  }
  procedureMouseWheelHandler(varMessage: TMessage); dynamic; 
  {  }
  functionIsRightToLeft: Boolean;
  {  }
  functionManualDock(NewDockSite: TWinControl; DropControl: TControl =nil; ControlSide: TAlign = alNone):Boolean; 
  {  }
  functionManualFloat(ScreenPos: TRect): Boolean;
  {  }
  functionPerform(Msg: Cardinal; WParam: WPARAM; LParam: LPARAM): LRESULT; overload;
  {  }
  procedureRefresh; 
  {  }
  procedureRepaint; virtual; 
  {  }
  functionReplaceDockedControl(Control: TControl; NewDockSite: TWinControl; DropControl: TControl; ControlSide: TAlign):Boolean; 
  {  }
  functionScreenToClient(constPoint: TPoint): TPoint; 
  {  }
  functionParentToClient(constPoint: TPoint; AParent: TWinControl = nil): TPoint;
  {  }
  procedureSendToBack; 
  {  }
  procedureSetBounds(ALeft, ATop, AWidth, AHeight: Integer); virtual;
  {  }
  procedureSetDesignVisible(Value: Boolean); dynamic;
  {  }
  procedureSetParentComponent(Value: TComponent); override; 
  {  }
  procedureShow; 
  {  }
  procedureUpdate; virtual; 
  {  }
  functionUseRightToLeftAlignment: Boolean; dynamic;
  {  }
  functionUseRightToLeftReading: Boolean;
  {  }
  functionUseRightToLeftScrollBar: Boolean;
  {  }
  procedureDefaultHandler(varMessage); override; 
  {  }
  functionGetTextBuf(Buffer: PChar; BufSize:Integer): Integer; 
  {  }
  functionGetTextLen: Integer;
  {  }
  functionPerform(Msg: Cardinal; WParam: WPARAM; LParam:PChar): LRESULT; overload;
  {  }
  functionPerform(Msg: Cardinal; WParam: WPARAM;var LParam: TRect): LRESULT; overload;
  {  }
  procedureSetTextBuf(Buffer: PChar);
  { 属性:指定与控件相关连的动作 }
  propertyAction: TBasicAction read GetAction writeSetAction; 
  { 属性:指定控件在其 Parent 中的对齐方式 }
  propertyAlign: TAlign read FAlign writeSetAlign default alNone; 
  { 属性:指定控件如何固定在其 Parent 中,确保无论 Parent 如何改变尺寸,当前控件的上下左右与其 Parent 的相对位置都不会发生变化 }
  propertyAnchors: TAnchors read FAnchors writeSetAnchors stored IsAnchorsStored default [akLeft, akTop];
  { 属性:指定控件的双向模式,BiDiMode 允许当控件运行在一个本地环境中时,自动调整它的外观和行为,使控件从右向左读取,而不是从左向右读取 }
  propertyBiDiMode: TBiDiMode read FBiDiMode writeSetBiDiMode stored IsBiDiModeStored; 
  { 属性:获取以 Parent 的坐标系统表示的当前控件的范围坐标(当前控件的上下左右在 Parent 坐标系统的什么地方) }
  propertyBoundsRect: TRect read GetBoundsRect writeSetBoundsRect; 
  { 属性:控件的客户群高度,相当于 ClientRect.Bottom }
  propertyClientHeight: Integerread GetClientHeight writeSetClientHeight stored False;
  { 属性:指定控件客户区左上角的屏幕坐标(以像素为单位),继承自 TControl 和 TWInControl 的控件的“屏幕坐标”是指该控件相对于其 Parent 左上角的坐标,如果该控件没有 Parent,则读取 ClientOrigin 属性会引发一个 EInvalidOperation 异常 }
  propertyClientOrigin: TPoint read GetClientOrigin; 
  { 属性:控件的客户区范围(对于窗体而言,客户区是指去掉标题栏和边框以后的区域),对于有滚动条的控件,客户区并不是整个滚动范围,而只是当前可见的滚动区域 }
  propertyClientRect: TRect read GetClientRect; 
  { 属性:控件的客户群宽度,相当于 ClientRect.Right }
  propertyClientWidth: Integerread GetClientWidth writeSetClientWidth stored False;
  { 属性:指定控件的限制尺寸,控件只能在限制范围内改变尺寸 }
  propertyConstraints: TSizeConstraints read FConstraints write SetConstraints;
  { 属性:指定控件在运行时的当前状态 }
  { TControlState = set of (csLButtonDown, csClicked, csPalette,
    csReadingState, csAlignmentNeeded, csFocusing, csCreating,
    csPaintCopy, csCustomPaint, csDestroyingHandle, csDocking,
    csDesignerHide, csPanning, csRecreating, csAligning, csGlassPaint,
    csPrintClient); } 
  propertyControlState: TControlState read FControlState write FControlState;
  { 属性:指定控件的样式特征。ControlStyle 描述一个控件的永久状态,ControlStyle 不能在运行时被修改,但可以在构造函数中被修改。而 ControlState 属性则用来记录控件的临时状态。 }
  { TControlStyle = set of (
    csAcceptsControls,         // 在设计时,控件可以成为放在它上面的控件的Parent控件
    csActionClient,            // 控件被连接到一个 Action 对象,当为控件的Action属性赋值时,这个设置被自动启用,当控件的Action属性被清空时,这个设置被自动禁用
    csAlignWithMargins,        // 控件使用 Margins 属性进行控制
    csCaptureMouse,            // 控件在被单击时捕获鼠标事件
    csClickEvents,             // 控件可以接收和响应鼠标单击消息,某些控件不继承这个属性,比如TButton
    csDesignInteractive,       // 在设计时,将控件的鼠标右击映射为鼠标左击来操纵控件
    csDisplayDragImage,        //
    csDoubleClicks,            // 控件可以接收和响应鼠标双击消息,另外,将双击消息映射到(两个)单击消息
    csFixedHeight,             // 控件的高度值不发生改变或缩放
    csFixedWidth,              // 控件的宽度值不发生改变或缩放
    csFramed,                  // 控件拥有 3D 框架
    csGestures,                //
    csMenuEvents,              // 控件响应系统菜单命令
    csNeedsBorderPaint,        // 这个选项只有当控件启用 Windows XP 样式时才适用,这个选项会使 ThemeServices 使用当前主题绘制控件边框
    csNoDesignVisible,         // 控件在设计时不可见
    csNoStdEvents,             // 标准事件(例如鼠标、键盘和单击事件)将被忽略,这个标志允许应用程序在不需要响应这些消息时更快的运行
    csOpaque,                  // 控件完全填充它的客户区范围
    csOverrideStylePaint,      //
    csPaintBlackOpaqueOnGlass, //
    csPannable,                // 如果想要控件支持鼠标平移,则使用这个标志
    csParentBackground,        // 这个选项只有当控件启用 Windows XP 样式时才适用,这个选项会使当前控件使用其 Parent 的背景主题
    csReflector,               // 控件响应窗口对话框消息,焦点消息或尺寸改变消息
    csReplicatable,            // 控件可以通过 PaintTo 方法将自身的样子拷贝到任意画布中
    csSetCaption               // 如果没有明确给控件的 Caption属性赋值,则控件的Caption属性的值将和Name 属性相同
    ); }
  propertyControlStyle: TControlStyle read FControlStyle write FControlStyle;
  { 属性:指定控件如何与其它控件一起停靠在相同的 Parent 中,对接区可以设置为从左到右或从上到下 }
  propertyDockOrientation: TDockOrientation read FDockOrientationwrite FDockOrientation;
  { 属性:获取控件的精确水平位置,由 Delphi 内部使用,用户只需要使用 Left 属性即可 }
  propertyExplicitLeft: Integerread FExplicitLeft; 
  { 属性:获取控件的精确垂直位置,由 Delphi 内部使用,用户只需要使用 Top 属性即可 }
  propertyExplicitTop: Integerread FExplicitTop; 
  { 属性:获取控件的精确宽度,由 Delphi 内部使用,用户只需要使用 Width 属性即可 }
  propertyExplicitWidth: Integerread FExplicitWidth; 
  { 属性:获取控件的精确高度,由 Delphi 内部使用,用户只需要使用 Height 属性即可 }
  propertyExplicitHeight: Integerread FExplicitHeight; 
  { 属性:获取控件的浮动状态 }
  propertyFloating: Booleanread GetFloating; 
  { 属性:指定用来承载浮动控件的临时控件的类型 }
  propertyFloatingDockSiteClass: TWinControlClass read GetFloatingDockSiteClasswrite FFloatingDockSiteClass;
  { 属性:指定控件所停靠的控件(停靠在哪个控件旁边),应用程序应该使用 ManualDock 方法,而不是设置 HostDockSite 属性 }
  propertyHostDockSite: TWinControl read FHostDockSite writeSetHostDockSite; 
  { 属性:指定控件水平停靠时的宽度 }
  propertyLRDockWidth: Integerread GetLRDockWidth writeFLRDockWidth; 
  { 属性:确定当鼠标指针移动到控件上时,是否显示提示信息 }
  propertyShowHint: Booleanread FShowHint writeSetShowHint stored IsShowHintStored; 
  { 属性:指定控件垂直停靠时的高度 }
  propertyTBDockHeight: Integerread GetTBDockHeight writeFTBDockHeight; 
  { 属性:指定与控件相关的 TouchManager 组件(手势控件) }
  propertyTouch: TTouchManager read FTouchManager writeSetTouchManager; 
  { 属性:指定控件在浮动时的高度,改变一个空间的 UndockHeight 值,只有在控件下一次浮动时才会体现出来 }
  propertyUndockHeight: Integerread GetUndockHeight writeFUndockHeight; 
  { 属性:指定控件在浮动时的宽度,改变一个空间的 UndockWidth 值,只有在控件下一次浮动时才会体现出来 }
  propertyUndockWidth: Integerread GetUndockWidth writeFUndockWidth; 
  { 属性:指定组件在运行时是否可见,也可以使用 Show 或 Hide 方法来显示或隐藏控件,对于 TTabSheet 的后裔,Visible 无法在运行时控制其可见与否,更多信息请参见 TabVisible 属性 }
  propertyVisible: Booleanread FVisible writeSetVisible stored IsVisibleStored default True;
  { 属性:指向控件消息处理过程 }
  propertyWindowProc: TWndMethod read FWindowProc writeFWindowProc; 
  { 属性:指定用来包含该控件的 Parent 控件(只有 TWinControl 及其子类的控件才能作为 Parent 使用) }
  propertyParent: TWinControl read FParent writeSetParent; 
  { 属性:当执行一个与此控件相关的手势时,触发该事件,参见 TTouchManager 类 }
  propertyOnGesture: TGestureEvent read FOnGesture writeFOnGesture; 
published
  { 属性:指定控件是否受 Margins 属性的制约 }
  propertyAlignWithMargins: Booleanread GetAlignWithMargins writeSetAlignWithMargins default False;
  { 属性:指定控件的左边相对其 Parent 或 包含该控件的控件 的左边的位置(以像素为单位)。对于窗体而言,Left 则相对于屏幕 }
  propertyLeft: Integerread FLeft writeSetLeft; 
  { 属性:指定控件的顶部相对其 Parent 或 包含该控件的控件 的顶部的位置(以像素为单位)。对于窗体而言,Top 则相对于屏幕 }
  propertyTop: Integerread FTop writeSetTop; 
  { 属性:指定控件的宽度(以像素为单位)。注:TTabSheet 控件在运行时改变这个属性值不会有任何效果 }
  propertyWidth: Integerread FWidth writeSetWidth; 
  { 属性:指定控件的高度(以像素为单位) }
  propertyHeight: Integerread FHeight writeSetHeight; 
  { 属性:指定当鼠标指针移动到控件区域时所显示的指针形状,它的的值是全局变量 Screen 中保存的光标列表的索引,应用程序也可以添加自定义光标到这个列表中 }
  propertyCursor: TCursor read FCursor writeSetCursor default crDefault; 
  { 属性:当鼠标指针移动到控件上时,要显示的提示信息字符串 }
  propertyHint: stringread FHint writeFHint stored IsHintStored; 
  { 属性:HelpType 用于指定控件的帮助主题使用哪种上下文敏感方式 }
  propertyHelpType: THelpType read FHelpType writeFHelpType default htContext; 
  { 属性:HelpKeyword 包含用于识别控件的帮助主题的关键字字符串,要使用基于关键字字符串的帮助功能,必须设置 HelpTyp 为 htKeyword }
  propertyHelpKeyword: Stringread FHelpKeyword writeSetHelpKeyword stored IsHelpContextStored; 
  { 属性:HelpContext 包含用于识别控件的帮助主题的上下文 ID,要使用基于上下文 ID 的帮助功能,必须设置 HelpTyp 为 htContext }
  propertyHelpContext: THelpContext read FHelpContext writeSetHelpContext stored IsHelpContextStored default 0; 
  { 属性:设置控件的外边距,只有当 AlignWithMargins 为 True,而且 Align 不为 alNone 时,外边距才有效 }
  propertyMargins: TMargins read FMargins writeSetMargins; 
  { 属性:控件的自定义提示信息 }
  propertyCustomHint: TCustomHint read GetCustomHint writeSetCustomHint; 
  { 属性:是否使用 Parent 的 CustomHint 信息,如果修改 CustomHint 的值,则 ParentCustomHint 自动变为 False }
  propertyParentCustomHint: Booleanread FParentCustomHint writeSetParentCustomHint default True;
end;

 

此时我们必须明白一些概念,Parent 和 Child 的关系是包含和被包含的关系,Owner 和 Sub 的关系是拥有与被拥有的关系。

TControl 中声明的 Parent 属性类似于 TComponent 中声明的 Owner 属性,因为 Parent 控件释放控件的过程就像 Owner 组件释放组件的过程。然而,Parent 控件通常是在视觉上包含其它控件的窗口控件,而且当窗体被保存时,还要负责将控件写入到流中。Owner 组件是通过构造函数的参数传入的组件,而且,如果指定了 Owner,那么当窗体被保存时,Owner
将保存所有对象(包括控件和它的 Parent 控件)。

Parent 负责 3 件事情:

1、Parent 负责将它的 Child 控件限制在自己的显示范围内,归自己管理。

2、Parent 在销毁时,负责销毁它的所有 Child 控件。

3、Parent 负责将它的 Child 控件写入到流中以便保存。

Owner 负责 2 件事情:

1、Owner 在销毁时负责释放它的所有子组件。

2、Owner 负责装载和保存它所拥有的控件的 Published 属性。

默认情况下,一个窗体将作为该窗体上所有组件的 Owner,同时 Application 又是窗体的 Owner。在窗体上放置组件时(包括放在 Panel 中的组件),窗体将默认成为该组件的 Owner。

警告:在设计期,如果一个组件的 Owner 不是一个窗体或一个数据模块,那么该组件不会跟随其 Owner 一起被保存和装载。除非通过 SetSubComponent 方法指定该组件为一个子组件。

 

抱歉!评论已关闭.