关于 TApplication 详解 三 ---- TComponent

ComponentCount属性  
对应对象:所有组件
声明:property   ComponentCount:   Integer;
功能:此属性在运行时有效,它是只读型。同时它标明组件具有的组件数。当用户在设计时可以在窗体上放置一个组件,因此此窗体将变为这个组件的有用者。Components属性例出了当前组件的所有的组件。

例子:
procedure   TForml.ButtonlClick(Sender:   TObject);  
var  
x:   Integer;  
begin  
        x   :=   Forml.ComponentCount;  
        Labell.Caption   :=   IntToStr(x);  
end;    

ComponentIndex属性  
对应对象:所有组件
声明:properrty   ComponentIndex:   Integer;
功能:此属性说明了拥有者的组件例表中当前的组件的位置。
每个组件包含一个其拥有者的组件数组,此数组是以0为基底的数组。Components属性可以来访问这个数组。CompnentIndex属性列出了它被拥有者的Components数组内部组件的位置,该属性在运行时是有效的,且是只读型。

例子:
procedure   TForm1.ButtonlClick(Sender:   TObject);  
begin  
Labell.Caption   :=   IntToStr(RadioButton3.ComponentIndex);  
end;    

Components属性  
对应对象:所有组件
声明:property   Components[Index:   Integer]:   TComponent;
功能:Components属性指出当前数组所拥有的组件数组。
Components属性在运行时是有效的,它是只读型的。它可以用来访问组件所拥有的任何组件(在知道组件的索引时)。一般情况下直接地访问组件边界容易,但是如果用户在运行时动态地创建了许多组件,用户将需要使用这个方法。因为组件数组是以0为基底的,所以第一个组件的索引将是0,第二个组件的索引将是1等。

例子:
//Indirectly   access   the   check   boxes   owned   by   the   form   and   check   them   all  
procedure   TForml.Button3Click(Sender:   TObject);  
var  
x:   Integer;  
begin  
        for   x   :=   0   to   Forml.ComponentCount   –   1   do  
        if   Forml.Components[x]   is   TCheckBox   then  
        TCheckBox(Form1.Components[x]).Checked   :=   True;  
end;      

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。    

DestroyCompoents方法  
对应对象:所有组件
声明:procedure   DestroyComponents;
功能:DestroyComponents方法撤销当前组件所拥有的全部组件。
DestroyComponents是它在第—次调用Destroying之后由Destroy方法调用的。除非是设计一个组件,一般的情况下是不需要直接访问DestroyComponents的。    

Destroying方法  
对应对象:所有组件
声明:procedure   Destroying;
功能:Destroying通过在它的ComponentState属性中设置cbDestroying标志,来通知当前组件立刻被撤销(除了在同时由全局TGovemor对象产生一个msgPardon信息)。之后它将对当前组件拥有的每一个组件调用Destroying方法。调用Destroying是由组件的Destroy方法所作出的第一个操作,用户一般不需要直接访问Destroying。    

FindComponent方法  
对应对象:所有组件
声明:function   FindComponent(const   AName:   string):   TComponent;
功能:FindComponent方法在当前的组件的Components数组中指出给定的组件。被传递给FindComponent中的字符串是被寻找的组件名。例如“Edit1”,“Label1”。FindComponent将返回该组件(如果它存在),否则将返回空。

例子:
//Use   FindComponent   to   obtain   another   pointer   to   CheckBoxl  
procedure   TForml.Button4Click(Sender:   TObject);  
var  
MyComponent:   TComponent;  
begin  
    MyComponent   :=   FindComponent(’CheckBox1’);  
    TCheckBox(MyComponent).Checked   :=   True;  
end;      

Name属性  
对应对象:所有组件
声明:property   Name:   TComponentName;
功能:Name是一个标识符、它可以用于在Delphi中的源代码和设计环境之间访问组件。De1phi在设计时为添加的组件提供了十分烦琐的缺省名,例如“Forml”,“Form2”等等。用户可以随意地改变它们。当动态的链接组件时,用户可以在源代码的var部分命名组件。

例子:
        动态创建一个按纽控件。
var  
Form2:   TForm2;  
MyButton:   TButton;   //the   Name   property   is   MyButton  
implementation      
{$R   *.DFM}      

procedure   TForml.FormCreate(Sender:   TObject);  
begin  
MyButton   :=   TButton.Create(Self);  
MyButton.Parent   :=   Form1;  
MyButton.Height   :=   32;  
MyButton.Width   :=   40;  
MyButton.Caption   :=   ’Hi’;  
//set   other   button   properties   as   needed  
end;  
警告:在运行时不要改变设计时创建的组件名。Delphi保持对设计时添加的组件方法和事件处理程序的跟踪,在程序运行时改变组件名将导致一些难以应付的事故。    

Owner属性  
对应对象:所有组件
声明:property   Owner:   TComponent;
功能:Owner属性用来指出当前组件的拥有者。
一个窗体对应所有在其上面的组件是它们的拥有者。当一个组件的拥有者被撤销时,它的存储空间同时被释放,那么该组件也就被撤销了,它所占据的内存也被释放。拥有一个组件和作为一个组件的父类是不同的。控件(它是TComponent的派生类)具有一个Parent属性,是对应组件的视觉容器而不是说明它是拥有者。视觉容器像其他包含的控件面板一样,都没有拥有控件,包含的控件仍旧由窗体所拥有。当动态创建组件时,Owner属性由Create方法来设置,在设计时创建的组件将它的Owner属性设置成为当前的窗体。Owner属性在运行时是有效的。    

Tag属性  
对应对象:所有组件
声明:property   Tag:   Longint;
功能:Tag属性用组件存储一个用户定义的长整型值。Tag属性允许用户使用组件存储长整型值,当用户看到它合适时就可以使用它,它的使用是可以选择的。

posted @ 2010-11-29 17:09  叮/当  阅读(426)  评论(0编辑  收藏  举报