Delphi as 和 is 的使用

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

posted on   YXGust  阅读(293)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本

导航

点击右上角即可分享
微信分享提示