Here are some implementation of IIF of mine. Note that the variant version is a little slower than the others, although not very significant in most cases.
{in interface section of the unit, to make the routines available globally}
interface
function IIF(const ACondition: Boolean; const ATrueResult, AFalseResult: Integer): Integer; overload;
function IIF(const ACondition: Boolean; const ATrueResult, AFalseResult: Double): Double; overload;
function IIF(const ACondition: Boolean; const ATrueResult, AFalseResult: string): string; overload;
function IIF(const ACondition: Boolean; const ATrueResult, AFalseResult: variant): variant; overload;
{in implementation section of the unit}
implementation
function IIF(const ACondition: Boolean; const ATrueResult, AFalseResult: Integer): Integer;
begin
if ACondition then
Result := ATrueResult
else
Result := AFalseResult;
end;
function IIF(const ACondition: Boolean; const ATrueResult, AFalseResult: Double): Double;
begin
if ACondition then
Result := ATrueResult
else
Result := AFalseResult;
end;
function IIF(const ACondition: Boolean; const ATrueResult, AFalseResult: string): string;
begin
if ACondition then
Result := ATrueResult
else
Result := AFalseResult;
end;
function IIF(const ACondition: Boolean; const ATrueResult, AFalseResult: variant): variant;
begin
if ACondition then
Result := ATrueResult
else
Result := AFalseResult;
end;


Sign In
Create Account


Back to top









