as就是把某个类型对象转换为某个指定类型,这样方便使用指定类型中的一些成员.

is就是判断某个对象是不是某个类型,可以筛选出我们需要的对象.

下面是一个as is 的实例代码,该代码同时也实现了两种方法对控件批量赋值,对控件批量赋予同一个消息处理函数.

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
procedure DoEdit(Sender: TObject);
public
{ Public declarations }
end; var
Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
begin
for i := 0 to ControlCount - 1 do
begin
if Controls[i] is TEdit then
if (Controls[i] as TEdit).Text <> '' then
begin
(Controls[i] as TEdit).Text := 'haha';
(Controls[i] as TEdit).OnClick:= DoEdit;
end;
end;
end; procedure TForm1.Button2Click(Sender: TObject);
var
i: integer;
begin
for i := 1 to 3 do
begin
TEdit(FindComponent('Edit' + IntToStr(i))).Text := 'hoho';
end;
end; procedure TForm1.DoEdit(Sender: TObject);
begin
ShowMessage((Sender as TEdit).Name);
end; end.

参考:https://www.cnblogs.com/jijm123/p/15292647.html

Delphi as 和 is 的使用的更多相关文章

  1. 学习笔记:7z在delphi的应用

    最近做个发邮件的功能,需要将日志文件通过邮件发送回来用于分析,但是日志文件可能会超级大,测算下来一天可能会有800M的大小.所以压缩是不可避免了,delphi中的默认压缩算法整了半天不太好使,就看了看 ...

  2. delphi连接sql存储过程

    针对返回结果为参数的 一. 先建立自己的存储过程 ALTER PROCEDURE [dbo].[REName] ) AS BEGIN select ROW_NUMBER() over(order by ...

  3. delphi 2010与delphi XE破解版的冲突

    在系统中同时安装了Dephi 2010LITE版与Delphi XE lite后,总是会有一个有问题 是因为两者都是读取C:\ProgramData\Embarcadero目录下的license文件, ...

  4. [Delphi] Delphi版本号对照

    VER300    Delphi Seattle / C++Builder Seattle    23    230    (Delphi:Win32/Win64/OSX/iOS32/iOS64/An ...

  5. delphi tidhttp 超时设置无效的解决方法

    现在delphi都发布到xe8了,tidhttp还有缺陷,那就是超时设置在没有网络或者连不上服务器的时候是无效的,不管你设置为多少都要10-20秒.connectTimeout和readTimeout ...

  6. Delphi Code Editor 之 编辑器选项

    Delphi Code Editor 之 编辑器选项 可从Code Editor的右键菜单中选择“Properties”菜单项来查看编辑器选项.也可以从主菜单[Tools | Editor Optio ...

  7. Delphi使用ADO进行数据库编程

    Delphi是一个可视化的编程工具,ADO编程也是这样,所以话不多言,直接通过代码.截图和语言来说明. 我的数据库是Oracle,为了测试,先建一个表:create table practice(un ...

  8. 怎么使用Delphi获取当前的时间,精确到毫秒

    先介绍一个可能比较常用的方法,获取当前时间 var datetime: string; begin datetime:= FormatDateTime('yyyy-mm-dd hh:mm:ss', N ...

  9. Delphi在创建和使用DLL的时候如果使用到string,请引入ShareMem单元

    当使用了长字符串类型的参数.变量时,如string,要引用ShareMem. 虽然Delphi中的string功能很强大,但若是您编写的Dll文件要供其它编程语言调用时,最好使用PChar类型.如果您 ...

  10. Delphi控件之---通过编码学习TStringGrid(也会涉及到Panel控件,还有对Object Inspector的控件Events的介绍

    我是参考了万一的博客里面的关于TStringGrid学习的教程,但是我也结合自己的实际操作和理解,加入了一些个人的补充,至少对我有用! 学用TStringGrid之——ColCount.RowCoun ...

随机推荐

  1. java7.14

  2. 【NOIP2012提高组】开车旅行

    题目 到处都有 闲话 碰巧考场上出了 \(Noip\) 原题 然后这题自然而然想到 预处理一个点开始分别由 \(A,B\) 驾驶会走到的下一个点 然后用预处理的数组求答案 当然你会发现 \(X=X0\ ...

  3. 按highcharts中column形式转对象展现格式

    highcharts图表type:column事例的格式是这样的: (不论接口返回什么格式,需要转换成下面这样的): xAxis: { categories: ['一月','二月'], }, seri ...

  4. 由于pom文件中依赖了redis,服务中没用到,微服务健康监控会报redis的错误

    在启动类里加 @SpringBootApplication(exclude = RedisAutoConfiguration.class)@MapperScan("com.news.rept ...

  5. liunx安装docker (自我记录)

    1 安装 安装所需的软件包dnf install -y yum-utils device-mapper-persistent-data lvm2 //官方源地址(比较慢) ~]# dnf config ...

  6. 40.Ribbon和Feign

    优先级:全局代码 < 全局属性 < 细粒度代码 < 细粒度属性 推荐属性配置

  7. CMT: Convolutional Neural Networks Meet Vision Transformers概述

    0.前言 相关资料: arxiv github 论文解读(CSDN,CSDN) 论文基本信息: 作者单位:华为诺亚, 悉尼大学 发表时间:CVPR2022(2021.7.13) 1.针对的问题 当前将 ...

  8. Centos7 MyCat2 安装部署

    部署MyCat2 之前需要搭建好数据库的主从,详看文档:mysql 主次数据库搭建 官网:http://www.mycat.org.cn/ 官方文档: https://www.yuque.com/cc ...

  9. postman连接mysql数据库

    转载:https://www.cnblogs.com/pengxiaojie/p/13495237.html 1.安装 2.启动服务 3.执行sql语句 安装: 想要postman连接mysql,需要 ...

  10. Property or method "scope" is not defined on the instance but referenced during render. Make sure that this property is reactive, either in the data option, or for class-based components

    报错如下 属性或方法"范围"不是在实例上定义的,而是在呈现期间引用的. 通过初始化属性,确保此属性是反应性的,无论是在数据选项中,还是对于基于类的组件. 原因在template中未 ...