delphi 中as和is运算符如何使用的?
就是这个问题,谢谢

解决方案 »

  1.   

    具体例子procedure ToggleCheck(Sender:TObject);
    var
      item:TMenuItem;
    begin
      item := sender as TMenuItem;//这句什么意思?
      item.Checked := not item.Checked;
    end;这段代码什么意思啊?
      

  2.   

    a is tb
    判断a是不是类tb的实例
    a as tb
    将a转化为类tb的实例
      

  3.   

    谢谢回复
    我总结下:sender参数返回 调用本过程的那个对象的引用,但是在过程体中不能直接应用sender,
    因为编译通不过(系统必须明确知道sender是什么类的对象的引用).
    所以,sender as TMenuItem这个语句就是告诉编译器sender是个TmenuItem类的一个对象的引用.
    不知对不对啊
      

  4.   

    procedure TForm1.Button1Click(Sender: TObject);
    begin
    if Sender is TButton then
       (Sender as TButton).Caption:='我是一个按钮';
    end;
      

  5.   

    我想应该是转换的意思吧,比如在SQL里select find1 as f_1,find2 as f_2 from table 假如原来就没有as转换的话得到到的结果:
    find1   find2
    ---------------
    xxx     ccc
    x1x2    c1c2而使用as转换后得到的结果是:
    f_1   f_2
    ------------
    xxx   ccc
    x1x2  c1c2
      

  6.   

    IS 类型判断,
    AS 类型转换