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

Как сократить   Найти похожие ветки 

 
Stif   (2008-06-25 15:18) [0]

Как записать алгоритм сравнения по-другому. Пробывал через In но не получилось (... in [-2..0]).

if Assigned(ModelsPanel) then
   with ModelsPanel.FDataLinkModel do
     Enabled := (Field.AsInteger <> -1) and (Field.AsInteger <> -2)
       and (Field.AsInteger <> 0);


 
Palladin ©   (2008-06-25 15:19) [1]

<-2 or >0


 
ciborg   (2008-06-25 15:41) [2]

Enabled := not (Field.AsInteger + 2 in [0..2]);


 
Игорь Шевченко ©   (2008-06-25 15:44) [3]


> Enabled := (Field.AsInteger <> -1) and (Field.AsInteger
> <> -2)
>        and (Field.AsInteger <> 0);


я бы так оставил


 
MBo ©   (2008-06-25 15:50) [4]

Enabled := Abs((Field.AsInteger + 1) > 1

но это непонятно с первого взгляда, что может быть не очень хорошо с точки зрения поддержки


 
Игорь Шевченко ©   (2008-06-25 16:07) [5]


> Enabled := Abs((Field.AsInteger + 1) > 1


а за такое бы убил :)


 
Тын-Дын ©   (2008-06-25 16:14) [6]

var
 En: Boolean;
 i: integer;
begin
 i := 0;
 En := not (-i in [2,1,0]);
 if en then ShowMessage("Ok");


 
Игорь Шевченко ©   (2008-06-25 16:18) [7]

извращенцы


 
ciborg   (2008-06-25 16:21) [8]

Еще вот так можно:
 
 case Field.AsInteger of
   -2, -1, 0: Enabled := False;
   else
     Enabled := True;
 end;

Если много условий, идущих не по порядку, код сокращается.


 
Anatoly Podgoretsky ©   (2008-06-25 17:01) [9]

> ciborg  (25.06.2008 15:41:02)  [2]

Field = 300
Не говоря уже о том, что затуманиваешь алгоритм, по мозгам бьешь, насилие.


 
Anatoly Podgoretsky ©   (2008-06-25 17:01) [10]

> Игорь Шевченко  (25.06.2008 16:07:05)  [5]

А за [2] с многократным воскрешением.


 
ciborg   (2008-06-25 17:08) [11]

:)
Человек спрашивал как по-другому записать.


 
Anatoly Podgoretsky ©   (2008-06-25 17:27) [12]

> ciborg  (25.06.2008 17:08:11)  [11]

Это он зря, он же не знает, насколько тут продвинутый форум, столько разного насоветуют, глаза разбегутся.
Лучше бы объяснил зачем сокращать, когда это самая наглядная форма, сразу все видно без ломания мозгов или объяснения от разработчика.



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

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



Память: 0.47 MB
Время: 0.01 c
1-1196142387
Kolan
2007-11-27 08:46
2008.07.27
Как в InnoSetUp настроить ярлыки на опр. файл?


3-1202974636
abhtr
2008-02-14 10:37
2008.07.27
Можно ли изменить название поля в таблице Paradox


2-1214220645
ciborg
2008-06-23 15:30
2008.07.27
Сбор информации о системе


2-1214593963
maxon
2008-06-27 23:12
2008.07.27
Разноцветные столбцы в TStringGrid, как?


15-1213111229
Волков Макс
2008-06-10 19:20
2008.07.27
Скорость обработки




   Наверх