With do结构的作用,除了在少写很多的前置代码,但会影响 代码阅读 清楚

另一个作用是,在动态运行时 创建代码 时使用,会方便很多,少写一些局部变量的申明 代码

procedure TForm13.Button2Click(Sender: TObject);
begin
with Tbutton.Create(self) do
 begin
   parent:= self;
   left:=10;
   top:=20;
   Caption:='asdfsad';
 end;
end;

 等价于

var aButton:Tbutton;
begin
   aButton:=  Tbutton.Create(self);
   aButton.parent:= self;
   aButton.left:=10;
   aButton.top:=20;
   aButton.Caption:='asdfsad';
end;

特别适合于 动态 创建多个 组件时

         with cxCheckComboBox1, Properties,items,add do
            begin
              Description := 'cccwwercc';
            end;