as
//As用于将一个对象转换为另一个对象
procedure BtnClick(Sender:TObject);
begin
  (Sender as TButton).Caption := 'Clicked';
end;以上是as的介绍
但是我不明白具体怎么用"As用于将一个对象转换为另一个对象"
(Sender as TButton).Caption := 'Clicked';
将sender转换成tbutton类型?
那后面的.Caption := 'Clicked';是做什么用的呢?

解决方案 »

  1.   

    As主要有两个用途,
    一是用于相容类型之间的转换,比如在处理按钮的OnClick事件时有一参数Sender,类型是Object   
    二是用于接口转换。其中接口转换实际上是Delphi在内部调用了QueryInterface方法,以使用户更方便的从从一个已知接口得到另一个接口。
      

  2.   

    as是用与向下转型的,由于TButton是用TObject继承下来的,因而TButton对象可以直接赋值给TObject对象,但是如果返回就要用as语句,实例:var
      Sender: TObject;
      Button: TButton;
    begin
      Button := TButton.Create(nil);
      try
        Sender := Button;
        Button := Sender as TButton;
      finally
        Button.Free;
      end;
    end;
      

  3.   

    procedure BtnClick(Sender:TObject);//一个按钮的单机事件(Sender as TButton).Caption := 'Clicked';//该按钮的名字(caption属性,如确定,取消,)换成 Clicked
      

  4.   

    (Sender as TButton).Caption := '确定';//这样明白吗?var
      Sender: TObject;
      Button: TButton;
    begin
      Button := TButton.Create(nil);
      try
        Sender := Button;
        Button := Sender as TButton;
      finally
        Button.Free;
      end;
    end;很清楚了,就是一转换。
      

  5.   

    给你一本书:《Inside VCL》好好研究去
      

  6.   

    (Sender as TButton).Caption := 'Clicked';//就是当你单击这个按钮后,这个按钮的文字就修改成Clicked了
      

  7.   

    UPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUP