![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
DarkProg |
|
|||
![]() Законченный романтик ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1784 Регистрация: 11.3.2009 Где: Земля Репутация: 2 Всего: 19 |
Всем, доброго дня
![]() Вот сижу делаю очень сложную модификацию проекта и раз уж начал, то гулять, так гулять ![]() Есть в проекте формы где содержится огромное количество датасетов, порядка 20-30, таких форм не много, но аж глаза разбегаются куда кликнуть, да и датасеты необходимо вечно таскать из стороны в сторону, если надо вдруг передвинуть какую-нибудь кнопочку... В общем мучение ещё то. Есть мысль это педелать, запихав всё это дело в коллекцию, но вот не получается в лоб решение... По идее можно было бы использовать класс TCollection но тогда датасет должен быть наследником класса TCollectionItem, чем он естественно не является. Я мог бы создать TCollectionItem у которого было бы свойство TDataSet, только смысла от этого никакого, потому что тогда я просто получу элемент коллекции с возможностью указать ссылку на объект, а мне нужен компонент который сам в себе будет содержать всю эту гору датасетов... P.S. как решение простое я вижу использование DataModule где и будет валятся вся эта гора датасетов, но хотелось бы всё таки компонентик попробовать сваять... P.P.S. я правда что-то не могу найти чтобы кто-то такое вообще пробовал... -------------------- "И твоя голова всегда в ответе за то куда сядет твой зад..." "Я студент - скажите с какого я ВУЗа..." ![]() ![]() ![]() |
|||
|
||||
TSerg |
|
|||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 9.10.2012 Репутация: нет Всего: нет |
||||
|
||||
DarkProg |
|
|||
![]() Законченный романтик ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1784 Регистрация: 11.3.2009 Где: Земля Репутация: 2 Всего: 19 |
Да, он придуман чтобы туда можно было накидать кучу компонентов, но мне удобнее было бы иметь компонент-коллекцию, т.к. тогда бы все компоненты лежали на одной форме, а так придётся перегрузить конструктор формы чтобы создать этот модуль вместе с формой. Я то в общих чертах уже придумал как это можно реализовать с помощью DataModule, но будет пара подводных камней... вот и хочется компонентик нормальный... -------------------- "И твоя голова всегда в ответе за то куда сядет твой зад..." "Я студент - скажите с какого я ВУЗа..." ![]() ![]() ![]() |
|||
|
||||
superVad |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 735 Регистрация: 6.4.2006 Где: Черкассы, Украина Репутация: 4 Всего: 15 |
Если формы создаются динамически и уничтожаются при выходе, то так нарушается целостность. Т.е. уже кто угодно может иметь доступ к датасету формы. Плюс - надо следить за инициализацией датасетов, закрытием, открытием. Да - проблемно все это. Возможно стоить увеличить окно и перенести все невидимые компоненты в невидимую область и вернуть окну размер. П.С. может и не целостность нарушается, а инкапсуляция ![]() Это сообщение отредактировал(а) superVad - 14.10.2012, 10:02 |
|||
|
||||
DarkProg |
|
|||
![]() Законченный романтик ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1784 Регистрация: 11.3.2009 Где: Земля Репутация: 2 Всего: 19 |
Там фишка будет в том что для каждой такой формы мне нужно будет создавать отдельный экземпляр дата модуля. И быть точно уверенным, что именно этот экземпляр привязан к конкретной форме. А что при этом нарушится может, так это только память, если сделать что-нибудь не так...
Это как бы не решение проблемы на мой взгляд... -------------------- "И твоя голова всегда в ответе за то куда сядет твой зад..." "Я студент - скажите с какого я ВУЗа..." ![]() ![]() ![]() |
|||
|
||||
superVad |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 735 Регистрация: 6.4.2006 Где: Черкассы, Украина Репутация: 4 Всего: 15 |
Да - вариант.
Ну можно создавать в конструкторе формы. |
||||
|
|||||
DarkProg |
|
|||
![]() Законченный романтик ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1784 Регистрация: 11.3.2009 Где: Земля Репутация: 2 Всего: 19 |
Да, я об этом уже говорил выше, что придётся конструктор перегружать... Мне только не понятно при этом как поведут себя некоторые ссылки ведь изначально я их буду создавать привязывая к конкретному дата-модулю... -------------------- "И твоя голова всегда в ответе за то куда сядет твой зад..." "Я студент - скажите с какого я ВУЗа..." ![]() ![]() ![]() |
|||
|
||||
MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 62 Всего: 128 |
И чем не решение? смысл ваять какой-то компонент, который будет делать то же самое? давать связанному с формой датамодулю схожее имя, например, с префиксом... -------------------- There are always someone smarter than you... |
|||
|
||||
DarkProg |
|
|||
![]() Законченный романтик ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1784 Регистрация: 11.3.2009 Где: Земля Репутация: 2 Всего: 19 |
Меня смущает непонятка в написании ссылки, например в DataSource, ведь там пишется имя DataModule на котором лежит конкретный датасет. Всегда ли созданная форма будет ссылаться на тот модуль который я создал... Или вот ссылка на компонент подключения DataModuleBase.ConnectionDase, ведь это у меня так модуль называется, а через точку идёт ссылка на компонент.
Я тут решил поэкспериментировать и получил интересный результат. Если в конкструкторе формы, до inherited Create самой формы прописать создание экземпляра датамодуля, то выглядит так как будто бы каждая форма ссылается на свой модуль, а вот если вдруг создаётся форма у которой в конструкторе нет создания экземпляра модуля, то компоненты на форме начинают ссылаться на уже существующий модуль. Проверка кто на кого ссылается при помощи разрушения модуля привязанного к форме. Меня беспокоит такое поведение, потому что пользователи могут учудить такое о чём ни в одной книге не пишут... -------------------- "И твоя голова всегда в ответе за то куда сядет твой зад..." "Я студент - скажите с какого я ВУЗа..." ![]() ![]() ![]() |
|||
|
||||
northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 8 Всего: 20 |
Код в студию! -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |