Ver Mensaje Individual
  #26  
Antiguo 13-03-2007
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: 30
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
Smile

¡Hola a todos!

Bueno, ahora sigo yo. Es algo realmente simplón y sencillezco.

Resulta que mientras programo suelen surgirme algunas ideas estrafalarias que casi siempre termino desechando por su poca utilidad. Una vez se me ocurrió que para hacer uso del resultado de una función en varios puntos de una rutina Delphi, sin tener que declarar una variable de por medio y sin llamar a dicha función más de una vez (algo que sería innecesario), podría modificar la función para que en lugar de devolver un entero, por ejemplo, devolviese un registro (record) que contuviera un entero, y entonces colocar la llamada a la función como expresión de un bloque With.

Código Delphi [-]
// Opción tradicional y más sana:

Function F1 :Integer;
Begin
  Result := 4;
End;

procedure TForm1.Button1Click(Sender: TObject);
Var
  I :Integer;
begin
  I := F1 ();

  If I = 5 Then
    ShowMessage ('F1 devolvió 5.')
  Else
    { NOTA: Canon debidamente pagado a Julián, a la SGAE y a la SAGARPA  }
    ShowMessage ('¡Pabernosmatao!  F1 devolvió ' + IntToStr (I) + '.');
end;

// Extravagancia de fiebre de sábado por la noche:

Type
  TInteger = Record
    Valor :Integer;
  End;

Function F2 :TInteger;
Begin
  Result.Valor := 4;
End;

procedure TForm1.Button2Click(Sender: TObject);
begin
  With F2 () Do
    If Valor = 5 Then
      ShowMessage ('F2 devolvió 5.')
    Else
      { NOTA: Canon debidamente pagado a Julián, a la SGAE y a la SAGARPA  }
      ShowMessage ('¡Pabernosmatao!  F2 devolvió ' + IntToStr (Valor) + '.');
end;

Dedicado a todos aquellos que no les gusta declarar variables.

Un abrazo inútil.

Al González.

Última edición por Al González fecha: 14-03-2007 a las 15:28:26.
Responder Con Cita