Вниз
Скачать: CL | DM;

Есть помнящие старый добрый фокспро?   Найти похожие ветки 

← →
oldman ©   (2007-04-03 18:55) [0]

Как на дельфи реализовать функцию iif быстро и просто, а не через if и else?
И почему ее там до сих пор нет???


← →
alien1769 ©   (2007-04-03 18:57) [1]

я помню, ну и что ?
может намекнеш про задачу (можно на мыло)


← →
oldman ©   (2007-04-03 18:58) [2]

Просто вспоминая:
a:=iif(b>0,1,iif(b=0,0,-1)) завидки берут...


← →
isasa ©   (2007-04-03 18:58) [3]

?

function IIFVar(Condition : Boolean; const ValueTrue, ValueFalse : Variant) : Variant;
begin
 if Condition then
   Result := ValueTrue
 else
   Result := ValueFalse;
end;


← →
TUser ©   (2007-04-03 18:59) [4]

Если требуется [3], то в D7 есть стандартная функция ifthen () в каком-то модуле.


← →
Чапаев ©   (2007-04-03 19:02) [5]

> a:=iif(b>0,1,iif(b=0,0,-1))
a:=Sign(b);
;-)


← →
isasa ©   (2007-04-03 19:06) [6]

TUser ©   (03.04.07 18:59) [4]
:)
Нам не надо по простому ...

unit StrUtils;

function IfThen(AValue: Boolean; const ATrue: string;  AFalse: string = ""): string; overload;

unit Math;

function IfThen(AValue: Boolean; const ATrue: Integer; const AFalse: Integer = 0): Integer; overload;
function IfThen(AValue: Boolean; const ATrue: Int64; const AFalse: Int64 = 0): Int64; overload;
function IfThen(AValue: Boolean; const ATrue: Double; const AFalse: Double = 0.0): Double; overload;


← →
isasa ©   (2007-04-03 19:10) [7]

Да, забыл добавить. Функция не такая простая, как может показаться. И работает(ну по крайней мере в Васике и C) хитро. Вне зависомости от результата логической операции оба выражения вычисляются. Так что можно так нарваться.


← →
Virgo_Style ©   (2007-04-03 19:11) [8]

oldman ©   (03.04.07 18:58) [2]

Кому как, но лично на меня читабельность этого выражения наводит легкую тоску



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.027 c
8-1155648360
Deka
2006-08-15 17:26
2007.04.29
Подскажите по DSPack. Разбираться нет времени - проект горит.


15-1173797879
oldman
2007-03-13 17:57
2007.04.29
Эх, нам бы так.


3-1171277582
petvv
2007-02-12 13:53
2007.04.29
insert into <....> select <...> union select <...> = грабли


2-1176126598
vitv
2007-04-09 17:49
2007.04.29
Многострочный DBGrid, поиск информации


15-1175714119
Real
2007-04-04 23:15
2007.04.29
Мона Лиза - в MSPAINT.EXE за 2,5 часа




   Наверх