Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.11.2010, 16:35   #1
fezilk25
Форумчанин
 
Регистрация: 01.08.2010
Сообщений: 124
По умолчанию Избавиться от нагромождения IF

Здравствуйте!

На форме есть компонент ComboBox1, и при выборе в нём какого-либо пункта (например, "2 мин.") должен изменяться интервал у Timer1.

Можно, конечно, сделать с помощью IF, но кода думаю будет слишком много (значений в ComboBox'е около 15).
Код:
if ComboBox1.ItemIndex = 1 then
  Timer1.Interval := 10000;
if ComboBox1.ItemIndex = 2 then
  Timer1.Interval := 40000;
if ComboBox1.ItemIndex = 3 then
  Timer1.Interval := 70000;
Существует ли какая-то конструкция для упрощения кода?

PS. "Похожие темы" - жесть..

Последний раз редактировалось fezilk25; 16.11.2010 в 16:37.
fezilk25 вне форума Ответить с цитированием
Старый 16.11.2010, 16:45   #2
Скандербег
Форумчанин
 
Регистрация: 04.04.2009
Сообщений: 438
По умолчанию

Загнать в свойства Objects ComboBox1'а значения интервалов
Код:
ComboBox1.Items.AddObject('1 мин', TObject(60000));
ComboBox1.Items.AddObject('2 мин', TObject(120000));
...
При выборе из списка:
Код:
Timer1.Interval := Integer(ComboBox1.Items.Objects[ComboBox1.ItemIndex]);
Скандербег вне форума Ответить с цитированием
Старый 17.11.2010, 00:29   #3
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

А CASE..OF ?
mihali4 вне форума Ответить с цитированием
Старый 17.11.2010, 00:43   #4
Скандербег
Форумчанин
 
Регистрация: 04.04.2009
Сообщений: 438
По умолчанию

А если элементов будет штук двести ?
Да и чем, собственно, будет отличаться этот case в ситуации автора от множества if'ов?
Скандербег вне форума Ответить с цитированием
Старый 17.11.2010, 02:07   #5
Genco
Пользователь
 
Аватар для Genco
 
Регистрация: 16.11.2010
Сообщений: 46
По умолчанию

case опрятнее. Эмпирическая формула,зависящая от числа тоже вариат. Или массив значений, но его тоже просто так не заполнишь. Можно написать в случае 200+ значений кодогенератор простейший и дальше Ctrl+V. Но что-то мне кажется,что у ТС их существенно мешьше.
Бложегов не имею, но найти меня можно в уютном междусобойчике тут: http://coverduck.ru
"Форум программистов, анархистов, анонимусов и просто любителей с интересом пообщаться"
Genco вне форума Ответить с цитированием
Старый 17.11.2010, 08:43   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
А если элементов будет штук двести ?
А массивы еще не отменили
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.11.2010, 08:54   #7
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Цитата:
(например, "2 мин.")
Цитата:
А если элементов будет штук двести ?
Ну, и пиши значение в комбобокс в секундах, а потом
Код:
 Timer1.Interval := strtoint(ComboBox1.Text) * 1000;
И всё!
_SERGEYX_ вне форума Ответить с цитированием
Старый 17.11.2010, 16:02   #8
fezilk25
Форумчанин
 
Регистрация: 01.08.2010
Сообщений: 124
По умолчанию

Спасибо всем
fezilk25 вне форума Ответить с цитированием
Старый 17.11.2010, 19:46   #9
Скандербег
Форумчанин
 
Регистрация: 04.04.2009
Сообщений: 438
По умолчанию

Цитата:
А массивы еще не отменили
Не стоит забывать, что Items в TCombobox'е - это и есть массив.
Скандербег вне форума Ответить с цитированием
Старый 17.11.2010, 20:30   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Не стоит забывать
А я не против, но откуда-то этот item нужно наполнять? Вот и пусть исходное (числа) хранятся в массиве целых
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как избавиться от ошибки faraon1792 Помощь студентам 0 11.05.2010 20:24
Как избавиться от (Error 91) r0tten Microsoft Office Excel 6 26.01.2010 06:47
Как избавиться от депрессии... :( ? Alex Cones Свободное общение 79 01.12.2009 14:05
Помогите избавиться от порно! Тат Безопасность, Шифрование 1 08.07.2009 03:55
как избавиться от закладки ЧИЖ Общие вопросы Delphi 3 24.06.2007 00:05