Na gut, wenn schon with, dann aber eins ohne Verwechslungsgefahr. Ich bin beileibe kein Freund von Basic, aber dort ist das eindeutig besser gelöst: ein Punkt vor der Property kennzeichnet, dass es sich um das mit with verbundene Objekt handelt.
Und Imp schlug vor es so wie in Oxygene zu machen. Dann gibt es keinen komischen Punkt, sondern einen richtigen Bezeichner.
In dem Kontext wäre natürlich auch Oxygenes "using" angebracht, und dass man eine richtige Syntax für Konstruktoren bekommt. (Nicht diesen komischen Krams in dem jeder seinen Ctor nennen kann wie er will und im Code sieht's aus wie eine statische Methode)
"Using" wäre dann wie Imps "with" aber würde ein try-finally erzeugen und am Ende Free ausführen.
Delphi-Quellcode:
procedure SomeClass.Miep;
begin
using trööt := new TStringList() do
begin
trööt.Add('abc');
trööt.Xyz();
end;
end;
Aber all das ist komplett witzos in dem Babelcode, den Delphi momentan darstellt. Delphi braucht einen clean-slate, ein Delphi 2.0, um ohne den Turbo Pascal Krempel weitermachen zu können.
Was bringen einem solche Features, und der Großteil des Codes, den man anschauen muss sieht immer noch so abscheulich aus?