Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.02.27;
Скачать: [xml.tar.bz2];

Вниз

iif ?   Найти похожие ветки 

 
Дима2003   (2003-02-17 10:11) [0]

а есть ли в Delphi аналог VB"шного IIF или C"шного "?" ?

iif(True,Value1,Value2)=Value1

?(false,Value1,Value2)=Value2


 
Anatoly Podgoretsky   (2003-02-17 10:16) [1]

Нет


 
анонимус   (2003-02-17 10:18) [2]

Есть!
В Delphi 6 есть!

IfThen называется!


 
shiling   (2003-02-17 12:49) [3]

И в правду есть!!! Век живи-век учись....
Unit

MathStrUtilsor

Category

miscellaneous routines

Delphi syntax:

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;
function IfThen(AValue: Boolean; const ATrue: string; const AFalse: string = ""): string; overload;


 
REA   (2003-02-17 13:12) [4]

Только вот зачем? Медленнее и нечитабельнее. Писанины меньше только что.


 
shane54   (2003-02-17 13:20) [5]

И Великие иногда ошибаются...


 
Anatoly Podgoretsky   (2003-02-17 13:24) [6]

Это не ошибка, есть потребность в функции получите, а вот насчет использования так это дело потребителя.


 
malkolinge   (2003-02-17 14:07) [7]


Об Этом еще Канту писал, что есть :))))
> Anatoly Podgoretsky ©



 
Anatoly Podgoretsky   (2003-02-17 14:26) [8]

Может оно в 6 и появилось, кто его знает - у меня ниже версия, но создание подобной функция задача 30 секунд, можно более универсальную на вириантах, правда это будет еще медленне, но более универсально.


 
Silver_   (2003-02-17 15:18) [9]

создай свою

function IIF(Cond: Boolean; Var Val1,Val2: Variant):Variant;
begin
if Cond then
Result:=Val1
else
Result:=Val1;
end;


 
myor   (2003-02-17 15:20) [10]

...
else
Result:=Val 2;//наверное
...


 
Silver_   (2003-02-17 15:29) [11]


> myor

да ты пряв пи"сял на скорую, получилось как видешь


 
myor   (2003-02-17 15:35) [12]

просто опечатка.


 
Anatoly Podgoretsky   (2003-02-17 15:41) [13]

Silver_ (17.02.03 15:18)
Вот этот вариант я написал много много лет назад, он очень гибкий

V := IIF(Cond,123,"Test");


 
Silver_   (2003-02-17 15:50) [14]

Anatoly Podgoretsky
ты о чем разве тебе придет в голову следующее

var
V: Integer;
...

if cond then
V:=123
else
V:="Test";


ето аналог

V := IIF(Cond,123,"Test");

попробуй еще раз прочесть вопрос :)


 
Anatoly Podgoretsky   (2003-02-17 16:22) [15]

Silver_ (17.02.03 15:50)
Придет и не надо передергивать карты, ключевое слов VARIANT, см. Silver_ (17.02.03 15:18)
Ты что содрал откуда то данную функции или все таки сам писал не зная что?


 
Silver_   (2003-02-18 11:28) [16]


> Ты что содрал откуда то данную функции или все таки сам
> писал не зная что?


сам такой пользуюсь, ответ писал по скорому (по памяти)
ошбочка в декларации
function IIF(Cond: Boolean; Var Val1,Val2: Variant):Variant;
нада убрать
Var

вот правильно

function IIF(Cond: Boolean; Val1,Val2: Variant):Variant;
begin
if Cond then
Result:=Val1
else
Result:=Val1;
end;


 
Anatoly Podgoretsky   (2003-02-18 12:33) [17]

И вот теперь попробуй еще раз V := IIF(Cond,123,"Test");

var
V : Variant;


 
Silver_   (2003-02-18 15:36) [18]

я не настырный но...


> И вот теперь попробуй еще раз V := IIF(Cond,123,"Test");


var
V : Variant;
begin
v:=IIF(True,123,"Test");
// или False Label1.Caption:=v;
end;


И усе катит как нада
в чем бяда не пойму :(


 
Anatoly Podgoretsky   (2003-02-18 16:00) [19]

Беда в варианте, но я не призываю его использовать, ему свое место, в первую очередь OLE


 
Silver_   (2003-02-18 16:04) [20]

так бы и сказал сразу а то пугаещь народ

правда эту функцию я тоже реко юзаю тока когда удовна, касиво,... :)

усе тема is Close;



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

Форум: "Основная";
Текущий архив: 2003.02.27;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.007 c
9-87240
Thor
2002-09-21 20:14
2003.02.27
Помогите плиз c BMP Creator


3-87241
iZEN
2003-02-07 15:10
2003.02.27
Выборка select *...pole like %Руз% в IB6.0.1


14-87663
Дмитрий К.К.
2003-02-11 07:46
2003.02.27
TColor


14-87708
ИгорьК
2003-02-10 16:31
2003.02.27
Самый остроумный мастер


1-87449
nomshar
2003-02-18 18:34
2003.02.27
Обработка события у динамически созданного компонента





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский