|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
19.03.2015, 19:02 | #21 |
Тот ещё
Старожил
Регистрация: 14.11.2007
Сообщений: 2,242
|
Перечитал вопрос еще раз.
StriderX дело говорит. Дженерик менеджеров позволит автоматизировать многое. Но без интетфейсов и/или наследования (для создателей, дубликаторов и пр.) не обойтись. м-дя. Пока 100 раз не перечитаешь - вопрос не поймешь. Короче, автору слово. Последний раз редактировалось Sibedir; 20.03.2015 в 15:20. |
20.03.2015, 15:17 | #22 | ||||
Тот ещё
Старожил
Регистрация: 14.11.2007
Сообщений: 2,242
|
Тема так и просит примера: Дженерик списка.zip
Замечания, конечно же, приветствуются. В принципе всё понятно, но тем не менее: 1. Как проще у TAgent переопределить AssignTo, чтобы туда кто попало TPersistent не пихал, а только TAgent. Понимаю, что туповатый вопрос, но не очень хочется каждый раз переписывать еще и Assign. 2. Откуда ноги растут у ошибок после закрытия фомы при финализации системных модулей. Цитата:
Цитата:
Цитата:
Цитата:
Если запускаю не из под среды - вылазит только первая нога... ошибка PS: Перечитал вопрос еще раз. Не. Базы данных. Однозначно.г Последний раз редактировалось Sibedir; 20.03.2015 в 18:22. |
||||
20.03.2015, 17:37 | #23 |
Новичок
Джуниор
Регистрация: 18.03.2015
Сообщений: 2
|
Спасибо за ответы!
Просто одним наследованием TAgent и TContract от TItem решить не получается, т.к. у TItem нет полей, которыми могут обладать первые. Из TItemManager не получится достать поле TAgent.AgentStatus; Писать TAgent(МенеджерАгентов.Объект[x]).AgentStatus неудобно, таки. Попробовал ввести наследование среди самих менеджеров, когда все основные функции менеджера прописаны в родительском классе, а наследники отличаются только классом объекта. Код:
StriderX, создает объект для менеджера, желательно, сам менеджер, но не обязательно. По большому счету, не важно даже где он создает и где этот массив хранится. Важно лишь иметь удобный способ доступа и управления этими данными. Поэтому я и спросил, может быть существует какой-то иной способ организации? С этими данными придется работать очень много - обращаться к отдельным полям и выполнять типичные процедуры. Можно ли применить интерфейсы? и как? Базы данных? Sibedir, метод СоздатьОбъект для Менеджера Контрактов и Менеджера Агентов один и тот же, создать, присвоить номер - техническая работа по инвентаризации. Разница только в классе объекта. У Контракта и Агента общего не очень много. Но их всех надо создавать, сохранять, менять местами особым способом, с изменением внутреннего индекса, обновлением базы индексов, и т.д., там тоже порядочно. Странно будет просто дублировать один и тот же код для 5-6, мб больше различных менеджеров, и самое главное его менять, если что Последний раз редактировалось Nhara; 20.03.2015 в 20:20. |
21.03.2015, 10:52 | #24 | |
Форумчанин
Регистрация: 21.04.2014
Сообщений: 115
|
Цитата:
Первый стабильный дженерик у нас был в 2010, более менее оно работает в XE. Относительно хорошо оно работает в XE7. В порядке бреда: нормальные герои всегда идут в обход. Обход у нас - это records. Вот пусть стаб с ними и страдает со своими клонированиями и копированиями ) |
|
21.03.2015, 20:45 | #25 | |
Тот ещё
Старожил
Регистрация: 14.11.2007
Сообщений: 2,242
|
StriderX, спасибо за код. Сижу изучаю. Интересно. Но слишком сложно для меня
Попробывал по другому. Переделал на Код:
Делал всё сегодня на бегу м/у домашними делами. И вот... Упростил всё как смог. Привел всё в понятный мне (надеюсь не только мне) вид. И нате вам. Ошибка при закрытии в какой-то момент пропала. Я даже не понял в какой. Попробовал вернуть последние изменения. Ошибки нет Фиг знает чё, но получилось - что получилось (XE3): Дженерик списка.zip Добавлено ----------------------------------------- ХА-ХА-ХА. Загрузил с форума свою предидущую версию. Вот же оно: Код:
И еще, Nhara, ну всё-таки Цитата:
Последний раз редактировалось Sibedir; 21.03.2015 в 21:03. |
|
22.03.2015, 08:41 | #26 | |
Форумчанин
Регистрация: 21.04.2014
Сообщений: 115
|
Цитата:
Если без шуток, то подход выглядит симпатичным только если запись действительно в контексте задачи является записью. |
|
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Множественное наследование ( доступ к базовым классам через puublic ,private) | Kioko | Общие вопросы C/C++ | 2 | 26.12.2014 19:48 |
Си как организовать структуру, данные взять из файла или сгенерировать | Vlt | Помощь студентам | 7 | 06.06.2012 22:55 |
Как организовать распределённый доступ к Paradox 7 ??? | Dr.Pauliss | БД в Delphi | 4 | 14.01.2012 17:32 |
C#. Как организовать распределённый доступ к Paradox 7 | Dr.Pauliss | C# (си шарп) | 1 | 14.01.2012 17:30 |
Организовать доступ к общей переменой в потоках | NastyaV | Помощь студентам | 6 | 24.03.2011 20:18 |