IF inmediatos
Artículo por Club Developers · 31 diciembre 2005
2988 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;