zoukankan      html  css  js  c++  java
  • Delphi之TComponent类

    TComponent类

    TComponent类直接由TPersistent派生。TComponent的独特特征是它的属性能够在设计期间通过ObjectInspector来控制,能够拥有其他组件。非可视组件也是从TComponent派生的,因此它们也继承了在设计期间可以被控制的能力。TComponent派生的非可视对象的典型例子是TTimer组件。TTimer组件是不可视组件,但它仍可以在组件面板上得到。TComponent定义了几个重要的属性和方法,在随后的段落中将加以描述。

    1.TComponent的属性:

    Owner:组件的拥有者

    ComponentCount:组件所拥有的组件数目

    ComponentIndex:组件在其拥有者列表中的位置。列表中第一个组件的该值为0

    Components:一个属性数组,包含组件拥有的组件列表。列表中第一个组件的该值为0

    ComponentState:该属性包含TComponentState类型组件的当前状态。(更详细的解释:

    ComponentState属性 
    对应对象:所有组件。
    声明:property ComponentState: TComponentState;  
    功能:ComponentState属性用来描述组件的状态。 ComponentState属性在运行时是有效的,且它是只读型的。它的类型是TComponentState,被声明成为:TComponentState = set of (csLoading, csReading, csWriting, csDestroying, csDesigning, csAncestor, csUpdating, csFixups); TComponentState是一个标志集合,把它们组合在一起可以导出组件的状态,一些公用的标志包括以下: 
    csDesigning:Delphi环境是设计方式,因此可以编辑组件。 
    csReading:组件从一个流中读取它的属性值。 
    csWriting:组件将它的属性值写入一个流中。 
    组件在内部使用CompnentState属性,可以保证某些程序可以执行。因此,无需经常直接地访问ComponentState。)

    ComponentStyle:组件的风格。可设为csInheritable或csCheckPropAvail,其意思参见在线帮助。

    Name:组件的名称

    Tag:一个整数,该属性没有确定的意思。组件编写者不能使用它,但应用程序编写者可以使用。因为该值为一整数类型,数据结构的指针(甚至于对象实例)可以通过它来区分。

    DesignInfo:不要使用这个属性。它由窗体设计器使用。

    2.TComponent的方法

    TComponent定义了几个方法,可以拥有其他组件,可以在窗体设计器上被控制。TComponent定义了组件的构造器Create()。该构造器负责创建组件的实例并通过参数传递指定组件的拥有者。与TObject.Create()不同,TComponent.Create()是虚拟的。TComponent派生类要实现构造器,必须覆盖这个方法。虽然你能在组件类中声明其他的构造器,但在设计期和运行期基于流创建组件的实例时,VCL只能使用TComponent.Create()构造器。

    TComponent.Destroy():析构器用于释放组件及其所有资源。

    TComponent.Destroying():方法用于给组件及其所拥有的组件设置一个状态,表示它们正在被销除。

    TComponent.DestroyComponents():方法用于析构组件。一般你不必直接使用这些方法。

    TComponent.FindComponents():方法便于你查找只知道名字的组件。假设你知道主窗体中有一个叫Edit1的TEdit组件,当你想查找这个组件时,你可以通过执行下列代码来获取它的实例指针:
    EditInstance := FindComponent('Edit');此例中,EditInstance是TEdit类型。如果没有找到,FindComponent()将返回nil。

    TComponent.GetParentComponent():方法返回父组件的实例。如果该组件没有父,这个方法将返回nil。

    TComponent.HasParent():返回一个Boolean值,表明组件是否有父。注意该方法与组件是否有拥有者无关。

    TComponent.InsertComponent():方法增加一个组件,为调用该方法的组件所拥有;

    TComponent.RemoveComponent():从调用该方法的组件中删除一个它拥有的组件。你一般不需要调用这些方法,因为组件的Create()构造器和Destroy()析构器会自动调用它们。

  • 相关阅读:
    Power of Cryptography
    Radar Installation
    Emag eht htiw Em Pleh
    Help Me with the Game
    89. Gray Code
    87. Scramble String
    86. Partition List
    85. Maximal Rectangle
    84. Largest Rectangle in Histogram
    82. Remove Duplicates from Sorted List II
  • 原文地址:https://www.cnblogs.com/chenmfly/p/4550930.html
Copyright © 2011-2022 走看看