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;这个就是用法了。
呵呵, 楼上有理,定义记录用 WITH 赋值
除了纪录对类也是可以的。with TForm.Create(Self) do begin Caption := 'New Form'; Left := 0; Top := 0; Width := 100; Height := 100; ShowModal; Free; end;
用 WITH 赋值 寻址速度变快
用with 对某一对象的属性和方法的使用更方便了
我一直纳闷,到底该不该使用with语句? 该?不该?该?不该?该?不该?该?不该?
提倡使用with语句,但是不提倡嵌套使用,会有很多问题
用with看代码累啊,特别是在代码超过一个页面的时候
提高记录(对象等各种能用“.”来指定子成员的数据类型)内部标识符作用域的优先权,避免适用于当前作用域同名标识符的干扰。 甚至可以使用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 := '...';
楼主 : 是这个意思 aaa.a aaa.b aaa.c 用with 后就可以这么写 with aaa do begin a :=''; b := c := end;自己多看点基础的书,真的,这个问题很简单
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;这个就是用法了。
楼上有理,定义记录用 WITH 赋值
begin
Caption := 'New Form';
Left := 0;
Top := 0;
Width := 100;
Height := 100;
ShowModal;
Free;
end;
寻址速度变快
该?不该?该?不该?该?不该?该?不该?
甚至可以使用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 := '...';
是这个意思
aaa.a
aaa.b
aaa.c
用with 后就可以这么写
with aaa do
begin
a :='';
b :=
c :=
end;自己多看点基础的书,真的,这个问题很简单