当前位置: 首页 > 编程日记 > 正文

关于 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属性允许用户使用组件存储长整型值,当用户看到它合适时就可以使用它,它的使用是可以选择的。

转载于:https://www.cnblogs.com/dgjack/archive/2010/11/29/1891255.html

相关文章:

[转载] K3 K3c 最简单无损开壳方法

只用一把螺丝刀就行了,其它什么撬棒 信用卡 撬片等 拆机工具一概不用。拆了5台,只有一台断了一个扣口。1. 把底部4个螺丝拿掉。2.把路由如图放在桌子上,路由平行于身体,注意是立着放 使路由与桌子接触的部分成30度角。这样使一侧…

图像处理随笔知识

采样频率: 采样频率是指1s内采样的次数,反映了采样点之间的间隔大小。 采样频率越高,得到的图像样本越逼真,图像质量越高,但要求的存储量也越大。 图像量化: 要用多大范围的数值来表示图样采样之后的每一个…

一则android软件开发工程师的招聘信息

岗位职责: 从事Android平台的客户端软件开发 任职资格: 1、一年以上Android平台开发经验; 2、两年以上Java开发经验; 3、熟悉Android开发架构和API调用; 4、熟悉HTTP、TCP/IP通讯协议; 5、熟悉面向对象编程…

【数据库】数据库基本操作

操作练习: 创建数据库 删除数据库 修改数据库配置 创建数据表 修改表结构 ———————————— 添加字段 修改字段 重命名字段 更改主键 删除字段 ———————————— 重命名表名 删除表 截断表 表数据的操作 添加数据 修改数据 删除数…

USERADD命令详解

2019独角兽企业重金招聘Python工程师标准>>> 1.作用useradd命令用来建立用户帐号和创建用户的起始目录,使用权限是终极用户。2.格式useradd [-d home] [-s shell] [-c comment] [-m [-k templat…

tensorflow入门(二)

import numpy as np import tensorflow as tf import matplotlib.pyplot as plt#使用numpy生成200个随机点 x_data np.linspace(-0.5,0.5,200)[:,np.newaxis] noise np.random.normal(0,0.02,x_data.shape) y_data np.square(x_data) noise#定义两个placeholder x tf.plac…

DRF序列化和反序列化

一、自定义序列化组件 新建一个任意名的py文件,里面导入serlizerfrom rest_framework import serializers自定义一个类继承serializers,里面写需要序列化的字段方法一:继承serializers.Serializerclass BookSerlizer(serializers.Serializer)…

设计模式学习笔记-中介模式

概述: 用中介对象来封装一系列的对象交互。中介者使各对象不需要显示地相互引用,从而使其耦合松散,而且可以对立地改变他们之间的…

【数据库】兴唐第二十七节课之jdbc的使用

使用jdbc修改数据库表中的信息 package java27practice;import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement;public class JDBCDemo {public static void main(String[] args) {Connection conn null;Stat…

windows 2008 R2无法创建性能收集器

问题: 检查排除方法: 1.确保用户有权限 Http://technet.microsoft.com/zh-cn/library/cc749154(WS.10).aspx (参考: 2.确保 Distributed Transaction Coordinator服务 及Task Scheduler服务有启动。 3.检查 C:\Windows\System32\T…

Silverlight WCF RIA服务(二十三)Silverlight 客户端 4

DomainDataSource WCF RIA Services提供DomainDataSource控件来简化用户界面和域上下文中数据的交互。通过DomainDataSource,我们可以只是用声明性语法来检索、编辑数据。我们指定域上下文与DomainDataSource一起使用,然后通过这个上下文来调用操作。Dom…

Storm Trident示例function, filter, projection

以下代码演示function, filter, projection的使用,可结合注释 省略部分代码,省略部分可参考:https://blog.csdn.net/nickta/article/details/79666918 FixedBatchSpout spout new FixedBatchSpout(new Fields("user", "score…

解决 sh: java: command not found 问题

在执行脚本上加入如下配置即可#!/bin/bashJAVA_HOME/usr/java/jdk1.8.0_152export PATH$PATH:$JAVA_HOME/bin转载于:https://www.cnblogs.com/jimw/p/11126437.html

【数据库】 兴唐第二十七节课只sql注入

首先来一个用户登录程序 public static void login(String username, String password) {Connection conn null;Statement stat null;ResultSet rs null; try {Class.forName("com.mysql.jdbc.Driver");String url "jdbc:mysql://127.0.0.1:3306/tyrantfor…

SIEM部署的几条最佳实践

2010年11月12号,NetworkWorld发表了一篇文章——《SIEM部署的最佳实践》,业界同仁给出了他的一些建议。 这些建议主要是针对Verizon2010年的那个DBIR报告中提到的日志缺失造成的严重问题。 至于建议,主要有: 1)先要搞明…

ffmpeg解码视频存为BMP文件

ffmpeg解码视频存为BMP文件 分类&#xff1a; ffmpeg2011-07-28 12:13 8人阅读 评论(0) 收藏 举报view plain#include <windows.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #pragma once #ifdef __cplusplus extern …

(四)Asp.net web api中的坑-【api的返回值】

&#xff08;四&#xff09;Asp.net web api中的坑-【api的返回值】 原文:&#xff08;四&#xff09;Asp.net web api中的坑-【api的返回值】void无返回值IHttpActionResultHttpResponseMessage自定义类型我这里并不想赘述这些返回类型&#xff0c; 可以参考博文http://blog.c…

如何提高编程能力?

其实很多人学编程都会遇到困难&#xff0c;我觉得其中一个根本原因是他们没搞明白学编程到底是学什么。编程不是一种知识&#xff0c;而是一门手艺。我们从小到大的学习都是学习知识&#xff0c;流程一般是课前看书预习&#xff0c;上课听讲&#xff0c;下课做作业&#xff0c;…

【HTML】兴唐第二十八节课之初识HTML

1、HTML&#xff1a;hyper text markup language&#xff08;超级文本标记语言&#xff09;算编程&#xff0c;但HTML不是编程语言 2、注意&#xff1a; &#xff08;1&#xff09;所有的HTML文件都是以.html或者htm作为扩展名 &#xff08;2&#xff09;html文件需要被浏览…

Nagios插件NDOUtils安装

1.DBI的安装# wget http://www.cpan.org/modules/by-module/DBI/DBI-1.608.tar.gz # tar zxvf DBI-1.608.tar.gz # cd DBI-1.608# perl Makefile.PL# make# make test# make install2.DBD的安装# wget http://www.cpan.org/modules/by-module/DBD/DBD-mysql-4.011.tar.gz # tar…

maven 获取pom.xml的依赖---即仓库搜索服务

常用仓库地址&#xff1a; http://repository.sonatype.org/ (https://repository.sonatype.org/)如下图&#xff1a; http://www.mvnrepository.com 转载于:https://www.cnblogs.com/hblthink/p/8643137.html

XFile 关键帧动画的解析遇到的问题

一、mesh 数据储存方式的修改 由于在设计CXFileMesh类时考虑不够全面&#xff0c;原CXFileMesh 类内部储存mesh数据采用的是vector模板。这使后来试图为该类添加支持3dsmax关键帧动画功能时带来很大麻烦。最后还是对CXFileMesh 类做了整体修改&#xff1a;用二叉树储存mesh数据…

【HTML】兴唐二十八节课之常用标签(不定期更新)

部分属性的详细参数见菜鸟教程 &#xff08;1&#xff09;换行 <br/> (2)字体设置颜色和大小 <font size 6 color blue>小米巨能写</font> &#xff08;3&#xff09;添加图片 <img src "index.jpg" width "300px"> 注&…

Python中自定义类如果重写了__repr__方法为什么会影响到str的输出?

这是因为Python3中&#xff0c;str的输出是调用类的实例方法__str__来输出&#xff0c;如果__str__方法没有重写&#xff0c;则自动继承object类的__str__方法&#xff0c;而object类的__str__方法是调用__repr__方法&#xff0c;因此自定义类未重写__str__方法的情况下&#x…

IT人士的人际关系压力

感谢听心心理学网站的投递在造成IT从业者的众多压力之中&#xff0c;人际关系带来的压力或许是最明显并且循环效应最强的一种。IT行业的冷漠环境是出了名的&#xff0c;在这样的状态之下&#xff0c;如何调整我们的人际关系&#xff0c;将恶性循环改造成良性循环&#xff0c;对…

软件工程网络15结对编程作业

软件工程网络15结对编程作业 1.项目成员 学号&#xff1a;201521123014 博客地址&#xff1a;http://www.cnblogs.com/huangsh/学号&#xff1a; 201521123102 博客地址&#xff1a;http://home.cnblogs.com/u/hyy786030686/结对编程码云项目地址&#xff1a;https://gitee.com…

【THML】兴唐第二十八节课 几个小程序

1、第一个html文件 <HTML><Head><title>小米商城</title></head><body><font size 6 color blue>小米巨能写</font><hr /><img src "index.jpg" width "300px"><p>标签组成部分&a…

Android系统默认Home应用程序(Launcher)的启动过程源代码分析

在前面一篇文章中&#xff0c;我们分析了Android系统在启动时安装应用程序的过程&#xff0c;这些应用程序安装好之后&#xff0c;还需要有一个Home应用程序来负责把它们在桌面上展示出来&#xff0c;在Android系统中&#xff0c;这个默认的Home应用程序就是Launcher了&#xf…

Data - 数据思维 - 下篇

9 - 数据解读与表达 数据解读 数据解读需要选择一个基点、一个参照系&#xff0c;单独的一个数值往往不具备价值&#xff0c;它只是数字。 注意点&#xff1a; 关注异常值&#xff0c;并深究WHY?相互验证、大胆假设、多方验证。把握趋势或者规律。归纳总结、数清理明。数据表达…

cas server 配置

1.修改cas server的deployerConfigContext.xml <bean id"dataSource" class"org.apache.commons.dbcp.BasicDataSource"> <property name"driverClassName"> <value>com.microsoft.sqlserver.jdbc.SQLServerDriv…