![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вопрос по синтаксису
Александр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
> не кажется мне правильной.
>
Чем она кажется тебе неправильной?