Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вопрос по синтаксису


Александр1 ©   (2007-12-25 00:59:00) 

Есть набор констант
Const1 = $01, Const2=$2, Const3 = $4, Const4 = $8
при написании программы они присваиваются
Result := Const1 or Const2 or Const3 or Const4;
Скажите пожалуйста как правильно создать набор CheckBox'ов для выбора констант и правильно обработать результат, т.к. конструкция вида
if CheckBox1.Checked then Result := Result or $01
if CheckBox2.Checked then Result := Result or $02
if CheckBox3.Checked then Result := Result or $04
не кажется мне правильной.
Спасибо.


clickmaker   (2007-12-25 19:18:00) [1]


> [12] Александр1   (25.12.07 19:13)

прибор-то хоть не опасный?
а то вдруг рванет при эксперименте?


Александр1   (2007-12-25 19:13:00) [2]


> а мануала не досталось при раздаче?

Уровня "переменные IFS_TYPE1...IFS_TYPE15 меняют интерфейс прибора"


clickmaker   (2007-12-25 17:50:00) [3]


> [10] Александр1   (25.12.07 17:44)

а мануала не досталось при раздаче?


Александр1   (2007-12-25 17:44:00) [4]


> а что за функция-то?

Это без разницы, она досталась мне вместе с программой


clickmaker   (2007-12-25 17:03:00) [5]


> [8] Александр1   (25.12.07 17:00)

а что за функция-то?


Александр1   (2007-12-25 17:00:00) [6]


> Для начала надо озвучить задачу, без этого нормального решения
> не придумаешь.

Уточняю.
Есть функция, ее поведение зависит от набора параметров, передаваемых в виде констант. Я хочу посмотреть поведение функции при различных наборах параметров, а перебирать комбинации параметров вручную нудно. Вот и родился вопрос, можно ли по списку (или что то вроде списка) констант создать набор CheckBox'ов и соответственно установленным флажкам передавать комбинацию параметров в функцию. И соответственно как это реализовать.


Skyle   (2007-12-25 11:21:00) [7]


> Александр1   (25.12.07 09:53) [5]
> > Всё что ниже - результаты телепатии.
>
> Об этом я и сам подумал, а способа проще нет?

Для начала надо озвучить задачу, без этого нормального решения не придумаешь.


Riply   (2007-12-25 09:59:00) [8]

> [5] Александр1   (25.12.07 09:53)
> Дык поэтому и вопрос "как правильно создать набор CheckBox'ов для выбора констант"

Например, CheckListBox.


Александр1   (2007-12-25 09:53:00) [9]


> А на сто констант ты будеш создавать сто CheckBox-ов ?

Дык поэтому и вопрос "как правильно создать набор CheckBox'ов для выбора констант"


> Всё что ниже - результаты телепатии.

Об этом я и сам подумал, а способа проще нет?


Skyle   (2007-12-25 07:37:00) [10]

Всё что ниже - результаты телепатии.

CheckBox1.Tag := $01;
CheckBox2.Tag := $02;
CheckBox3.Tag := $04;


А потом, в зависимости от способа хранения списка CheckBox, в цикле
for I := 0 to MyCheckBoxesCount - 1 do
 if MyCheckBoxes[Ii].Checked then
 begin
   Result := Result or MyCheckBoxes[I].Tag;
   Break;
 end;


А в данном конкретном случае можно первый кусок переписать примерно так

for I := 0 to MyCheckBoxesCount - 1 do
 MyCheckBoxes[I].Tag := 1 shl I;


Riply   (2007-12-25 07:03:00) [11]

> [2] Александр1   (25.12.07 07:00)
> А если сто констант? Писать сто if?

Sorry.
А на сто констант ты будеш создавать сто CheckBox-ов ?


Александр1   (2007-12-25 07:00:00) [12]


> Чем она кажется тебе неправильной?

А если сто констант? Писать сто if?


Германн   (2007-12-25 01:07:00) [13]


> т.к. конструкция вида
> if CheckBox1.Checked then Result := Result or $01
> if CheckBox2.Checked then Result := Result or $02
> if CheckBox3.Checked then Result := Result or $04
> не кажется мне правильной.
>

Чем она кажется тебе неправильной?


Наверх

Титульная страница Поиск, карта сайта Написать письмо