还有就是记录类型有为何物,一直搞不懂。

解决方案 »

  1.   

    With可以简化代码,但用的过多会导致代码结构的易读性降低!!!!记录吗!看书去吧,书上讲解的地方太多了!!!!
      

  2.   

    记录相当于C语言中的struct结构体
      

  3.   

    type
      TMyRec = record
        A: Integer;
        B: Char;
      end;var
      MyRec: TMyRec;procedure TForm1.Button2Click(Sender: TObject);
    begin
    //赋值方法一
      MyRec.A := 100;
      MyRec.B := 'Z';//赋值方法二
      with MyRec do
      begin
        A := 100;
        B := 'Z';
      end;
    end;这个就是用法了。
      

  4.   

    呵呵,
    楼上有理,定义记录用 WITH 赋值
      

  5.   

    除了纪录对类也是可以的。with TForm.Create(Self) do
    begin
      Caption := 'New Form';
      Left := 0;
      Top := 0;
      Width := 100;
      Height := 100;
      ShowModal;
      Free;
    end;
      

  6.   

    用 WITH 赋值
    寻址速度变快
      

  7.   

    用with 对某一对象的属性和方法的使用更方便了
      

  8.   

    我一直纳闷,到底该不该使用with语句?
    该?不该?该?不该?该?不该?该?不该?
      

  9.   

    提倡使用with语句,但是不提倡嵌套使用,会有很多问题
      

  10.   

    用with看代码累啊,特别是在代码超过一个页面的时候
      

  11.   

    提高记录(对象等各种能用“.”来指定子成员的数据类型)内部标识符作用域的优先权,避免适用于当前作用域同名标识符的干扰。
    甚至可以使用with Obj1, Obj2, Obj3 do类似的语句,使后续的with块代码简练。
    用好了,会提高代码编写效率。ALabel := TLabel.Create(...);
    ALabel.Parent := ...;
    ALabel.Caption := '...';
    ALabel.Left := ...;
    ALabel.Top := ...;可以用with写成ALabel := TLabel.Create(...);
    with ALabel do begin
      Parent := ...;//不会和当前Form1.Parent混淆
      Caption := '...';//不会和Form1.Caption混淆
      Left := ...;//...
      Top := ...;//...
    end;但如果只有简单的一两行语句,那么使用with就不必要甚至累赘了:ALabel.Caption := '...';
    上面的语句等价于
    with ALabel do Caption := '...';
      

  12.   

    楼主 :
    是这个意思 
    aaa.a
    aaa.b
    aaa.c
    用with 后就可以这么写
    with  aaa do 
      begin 
           a :='';
           b :=
           c :=
      end;自己多看点基础的书,真的,这个问题很简单
      

  13.   

    可是,with语句还有一个缺点,用了后就没有了代码提示功能了
      

  14.   

    感谢各位教我,我本来是学c的,现在为了工作无可奈何只有硬着头皮学delphi,看了一些书也觉的跟c没多大区别,但是还是有些不同。望以后各位多多回复我的贴,多谢多谢。