IF inmediatos
Artículo por Club Developers · 31 diciembre 2005
3575 vistas
Las condiciones booleanas, suelen ser lineas de código simples afectadas por una variable... Puede ser factible crear funciones que permitan controlar ésta situación (hacer en una linea eso que hacemos en 3...)
Estas funciones corresponderÃan al operador ( ? : ) de C o PHP.
Implementación de las funciones:
Utilización de las funciones
Que serÃa el equivalente a
Estas funciones corresponderÃan al operador ( ? : ) de C o PHP.
Implementación de las funciones:
delphi
Interface { If Inmediato } { IIF que reenvia un entero } function IIF(ACondition: boolean; ATruePart, AFalsePart: integer): integer; overload; { IIF que reenvia un extended } function IIF(ACondition: boolean; ATruePart, AFalsePart: Extended): Extended; overload; { IIF que reenvia un string } function IIF(ACondition: boolean; ATruePart, AFalsePart: string): string; overload; { IIF que reenvia un objeto } function IIF(ACondition: boolean; ATruePart, AFalsePart: TObject): TObject; overload; Implementation function IIF(ACondition: boolean; ATruePart, AFalsePart: integer): integer; { IF inmediato para enteros } begin if ACondition then Result := ATruePart else Result := AFalsePart; end; function IIF(ACondition: boolean; ATruePart, AFalsePart: Extended): Extended; { IF inmediato para floats } begin if ACondition then Result := ATruePart else Result := AFalsePart; end; function IIF(ACondition: boolean; ATruePart, AFalsePart: string): string; { IF inmediato para cadenas } begin if ACondition then Result := ATruePart else Result := AFalsePart; end; function IIF(ACondition: boolean; ATruePart, AFalsePart: TObject): TObject; { IF inmediato para objetos } begin if ACondition then Result := ATruePart else Result := AFalsePart; end;
Utilización de las funciones
delphi
procedure TMyObject.TestIIF; var idx: integer; MyString: String; begin idx := 10; { Por ejemplo } MyString := IIF(idx=0,'Cero','Diferente de cero'); end;
Que serÃa el equivalente a
delphi
procedure TMyObject.TestIIF; var idx: integer; MyString: String; begin idx := 10; { Por ejemplo } if idx=0 then MyString = 'Cero' else MyString = 'Diferente de Cero'; end;


