IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Массив типов, такое возможно?
sheka
сообщение 24.02.2011 16:27
Сообщение #1


Я.
****

Группа: Пользователи
Сообщений: 809
Пол: Мужской
Реальное имя: Саша

Репутация: -  11  +


В зависимости от ситуации переменную сделать нужного типа. Как можно это сделать?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
TarasBer
сообщение 24.02.2011 16:57
Сообщение #2


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


type UberType = record
case kind:byte of (
0: b: byte;
1: w: word;
2: i: integer;
3: s: string[31];
// и так далее...
);
end;


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
sheka
сообщение 24.02.2011 18:13
Сообщение #3


Я.
****

Группа: Пользователи
Сообщений: 809
Пол: Мужской
Реальное имя: Саша

Репутация: -  11  +


Не могу сформулировать правильно, но это чуть не то. Вот смотри, допустим есть массив объектов. В зависимости от нажатой клавиши хочу создать объект нужного типа. Можно ли эти типы как-то загнать в массив и потом просто по индексу создать объект? Или ничего не остается как делать обыкновенный кейс от нажатой клавиши?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 24.02.2011 19:01
Сообщение #4


Гость






А тебе в любом случае придется делать Case, хотя бы для определения, какая клавиша нажата. Так чего огород городить? В этом же кейсе в зависимости от кода нажатой клавиши создавай объект нужного типа.
 К началу страницы 
+ Ответить 
volvo
сообщение 24.02.2011 19:58
Сообщение #5


Гость






P.S. Можешь также заглянуть вот сюда:
Delphi Virtual Constructor - в FPC оно тоже доступно. Пункт 2.3 будет представлять для тебя интерес smile.gif
 К началу страницы 
+ Ответить 
sheka
сообщение 24.02.2011 20:57
Сообщение #6


Я.
****

Группа: Пользователи
Сообщений: 809
Пол: Мужской
Реальное имя: Саша

Репутация: -  11  +


Жаль что только с классами такое возможно.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 24.02.2011 21:51
Сообщение #7


Гость






Кури Фабричный метод (шаблон проектирования), может быть удастся сделать и с объектами, если очень надо. Но я бы не стал изобретать уже изобретенное...
 К началу страницы 
+ Ответить 
-TarasBer-
сообщение 24.02.2011 22:43
Сообщение #8


Гость






А чем плохи вариантные поля? Я вот на полном серьёзе их использовал в движке, там каждый объект мог быть и стеной, и комнатой, и оружием, и монстром.

Вот только контроля за дискриминантом очень не хватало.

Сообщение отредактировано: volvo - 24.02.2011 23:29
 К началу страницы 
+ Ответить 
-TarasBer-
сообщение 24.02.2011 22:44
Сообщение #9


Гость






Шрифт 7го размера - это самый большой, оказывается?!
Модераторы, исправьте, я имел в виду мелкий еле видный текст.
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 28.04.2024 0:05
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"