|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
23.10.2011, 18:09 | #1 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,430
|
Типы вида: type TOptions = (to1,to2,yo3);
Доброго времени суток!
как реализуется тип данных, которые принимает, к примеру: Код:
|
23.10.2011, 18:23 | #2 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
23.10.2011, 18:28 | #3 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,430
|
Нет, мне не надо знать, что это. Я знаю=)
Я хочу видить это у себя в программе. Не знаю как реализуется. Как-то так? Код:
|
23.10.2011, 18:35 | #4 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
А-а-а.
Ну это тебе нуна почитать из классического паскаля Код:
А использовать в коде так: Код:
I'm learning to live...
|
23.10.2011, 19:42 | #5 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,886
|
Аа, вон оно что, Человек_Борща а я как-то даже удивился когда ответил Вам что енумы смотрелись бы лучше для кода в какой-то Вашей теме, я полагал, Вы знаете..
Ну что ж : enumerated types (можно глянуть справку по ним) представляют из себя пользовательский тип данных, описываются примерно так: Код:
номер такого значения можно получить Ord'ом, получить такое значение по номеру можно так : имя типа(номер), т.е. применительно к нашему примеру : TCardType(1)= ctClubs Рекомендую ещё почитать справку, там есть кое-какие тонкости простых и нумерованных енумов Образовывать сеты (наборы значений) из таких данных можно так: Код:
|
23.10.2011, 20:26 | #6 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,430
|
Благодарю, очень полезный ответ=)
|
26.10.2011, 09:38 | #7 | |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,430
|
Реализовал:
Код:
Код:
Цитата:
и как через комбобокс.итеминдекс передать тип? пробовал так: Код:
Последний раз редактировалось Человек_Борща; 26.10.2011 в 10:08. |
|
26.10.2011, 09:57 | #8 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Если Action типа TSheduleTaskAction, то так нельзя. Можно если тип TSheduleTaskActionSet. TSheduleTaskAction - множество и проверка if saStart in Action then ...
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
26.10.2011, 10:05 | #9 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,528
|
case [saStart,saStop] of //что делать не скажет никто
зачем здесь множество исходя из именований и приведенного кода aTask.Action должно быть TSheduleTaskActionSet , т.е. ОДНО ИЗ (saStart,saStop,saRestart) НО не TSheduleTaskAction их набором (set of TSheduleTaskActionSet) .
программа — запись алгоритма на языке понятном транслятору
|
27.10.2011, 12:56 | #10 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,886
|
Я может не понял, но вроде сет тут просто не нужен, используем его, коли мы хотим хранить вместе несколько разнозначимых значений одного типа (енума), а если не надо несколько, а только всегда одно значение, то выкинуть вообще сет, оставить везде только енум-тип TSheduleTaskAction (обозвать енум словом с set на конце и сет по такому же имени, но без set - разрыв :D )
тогда его (енум) можно будет проверять в кейсах и передавать из комбобокса с приведением типа. ПС то же , что высказал evg_m, но иными словами К слову - когда я говорил о полиморфмизме, я намекал на то, что можно сделать ещё изящней на классах и не понадобится куча кейсов, (могу даже предоставить пример), но, сейчас уже думаю, что в данной задаче это будет избыточно. И ещё кстати - очень люблю пользоваться RTTI енумов и функциями GetEnumName и GetEnumValue - дичайше удобные вещи для перевода енумов сразу в строки и обратно (в примере , который я предлагаю, это есть, коли таки надо - в личку ) Последний раз редактировалось phomm; 27.10.2011 в 13:09. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Could not convert variant of type (Olestr) into type (Double) | java_91 | Общие вопросы Delphi | 1 | 18.02.2011 18:46 |
The type name 'GreenShalControl' does not exist in the type | Beton_net | WPF, UWP, WinRT, XAML | 0 | 15.02.2011 11:24 |
Could not convert variant of type (UnicodeString) into type (Double) | postaveche | БД в Delphi | 11 | 13.12.2010 16:41 |
[C] Абстрактные типы данных. Реализация дерева общего вида. | Dju | Помощь студентам | 0 | 11.05.2009 18:11 |