Ver Mensaje Individual
  #46  
Antiguo 20-09-2016
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Reputación: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
¡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);  // Llamada a un método externo usando el formulario creado como parámetro
    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);  // Llamada a un método externo usando el formulario creado como parámetro
      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.

Última edición por Al González fecha: 20-09-2016 a las 22:13:30.
Responder Con Cita