¡Menudos ejemplos, Germán! Por supuesto que no tendría sentido usar el nuevo
With en casos así.
Pero hay otros donde sí, como el de la imagen del primer mensaje (que parece que
salió borrosa). Consideremos la siguiente comparativa:
Sin With:
Código Delphi
[-]procedure TForm1.Button1Click(Sender: TObject);
var
LForm :TForm2;
begin
LForm := TForm2.Create(Self);
try
AppLogger.LogForm(LForm); LForm.ShowModal;
finally
LForm.Free;
end;
end;
Con el nuevo With:
Código Delphi
[-]procedure TForm1.Button1Click(Sender: TObject);
begin
with TForm2.Create(Self) do
try
AppLogger.LogForm(It); It.ShowModal;
finally
It.Free;
end;
end;
No es que busquemos
ahorrar palabras. No es así de simple. Sino que los recursos que permitan simplificar código fuente de una manera elegante siempre debieran ser bienvenidos,
salvo que no sean seguros. Como el riesgo es la desventaja del
With actual, se propone hacerlo seguro conservando su elegancia. Incluso se añade una ventaja más: la de poder hacer referencia al objeto mismo dentro del bloque
With (algo que la actual sintaxis no posee).
Saludos aclaratorios.
Al González.
P.D. Se agradece el anterior mensaje, de
Román, que ahora veo y suscribo.