What WITH does in Delphi is provides a shortcut way of referencing the Object in the With Object do bit. The advantage is that a clutch of
Object.PropertyA:=x;
Object.MethodA(Param1,Param2...)
y:=Object.PropertyB;
can be replaced with
with Object do
begin
PropertyA:=x;
MethodA(Param1,Param2...);
y:=PropertyB;
end;
This makes for more compact code that is also less liable to error.