zoukankan      html  css  js  c++  java
  • Controls与Components的区别

    见例子 http://www.cnblogs.com/del/archive/2008/10/23/1317862.html

    begin
    Memo1.Clear;

    Memo1.Lines.Add('窗体所属的 Components:');
    for i := 0 to Self.ComponentCount - 1 do
        Memo1.Lines.Add(Components[i].Name);

    Memo1.Lines.Add('');
    Memo1.Lines.Add('窗体所属的 Controls:');
    for i := 0 to Self.ControlCount - 1 do
        Memo1.Lines.Add(Controls[i].Name);
    end;

    ----------------------------------------------------------------------------------------------------------------------------

    TControl是所有可视控件的父类。而TComponent也包括非可视控件。   --?

    一个容器控件如果被其他控件指定为属主(Owner), 那么它的 Components 集合就会增加一个元素;
    一个容器控件如果被其他控件指定为 Parent, 那么它的 Controls 集合就会增加一个元素;

    控件释放时空同时释放 Components 集合中的元素;
    控件 Controls 集合中的控件都会显示在它的怀抱中, 并且 Left、Top 等属性也都是参照它.
        
    some题外话:

    一般来说,所有在设计状态下添加的控件(无论可视或者非可视)的Owner都是Form。而且当一个Control的Owner不是Form时,它将不能在设计状态下被选定并进行编辑。而其相关属性也不会保存到DFM文件中。

    控件被放置于GroupBox当中,其实只是控件的Parent属性为GroupBox,而GroupBox的ComponentCount仍然为0,反倒是Form.Components包含了所有控件,即这个控件的Owner还是Form。

    控件会添加到其Parent属性所指控件Controls数组,Owner属性所指的Components数组。默认情况下设计期添加的控件其Parent属性就是其容器控件,而Owner为其所属Form。

    如:在form1中放groupbox,在groupbox1中放label1,则label1的parent属性为groupbox1,owner属性为form1

  • 相关阅读:
    在.wxml文件中使用方法
    Element日期区间选择器限制选择范围
    规定段落中的文本不进行换行
    文件大小换算
    elementUI的message消息提示改成只能同时存在一个
    SQL 执行顺序
    SQL Left join
    wpf datagrid 行双击事件
    关于Infragistics.WebUI.UltraWebGrid的使用
    ASP.NET 根据汉字获取汉字拼音的首字母(含多音字)
  • 原文地址:https://www.cnblogs.com/phyking/p/4456601.html
Copyright © 2011-2022 走看看