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 2022-10-03 12:00  YXGust  阅读(340)  评论(0)    收藏  举报

导航