Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создание коллекции датасетов 
:(
    Опции темы
DarkProg
Дата 13.10.2012, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Законченный романтик
***


Профиль
Группа: Завсегдатай
Сообщений: 1784
Регистрация: 11.3.2009
Где: Земля

Репутация: 2
Всего: 19



Всем, доброго дня smile
Вот сижу делаю очень сложную модификацию проекта и раз уж начал, то гулять, так гулять  smile 

Есть в проекте формы где содержится огромное количество датасетов, порядка 20-30, таких форм не много, но аж глаза разбегаются куда кликнуть, да и датасеты необходимо вечно таскать из стороны в сторону, если надо вдруг передвинуть какую-нибудь кнопочку... В общем мучение ещё то.

Есть мысль это педелать, запихав всё это дело в коллекцию, но вот не получается в лоб решение...
По идее можно было бы использовать класс TCollection но тогда датасет должен быть наследником класса TCollectionItem, чем он естественно не является.
Я мог бы создать TCollectionItem у которого было бы свойство TDataSet, только смысла от этого никакого, потому что тогда я просто получу элемент коллекции с возможностью указать ссылку на объект, а мне нужен компонент который сам в себе будет содержать всю эту гору датасетов...

P.S. как решение простое я вижу использование DataModule где и будет валятся вся эта гора датасетов, но хотелось бы всё таки компонентик попробовать сваять...
P.P.S. я правда что-то не могу найти чтобы кто-то такое вообще пробовал...


--------------------
"И твоя голова всегда в ответе за то куда сядет твой зад..."

"Я студент - скажите с какого я ВУЗа..."

 smile  smile  smile 
PM MAIL   Вверх
TSerg
Дата 13.10.2012, 18:25 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 9.10.2012

Репутация: нет
Всего: нет



Цитата(DarkProg @  13.10.2012,  14:35 Найти цитируемый пост)
как решение простое я вижу использование DataModule


Именно для этого он и придуман.
PM MAIL   Вверх
DarkProg
Дата 13.10.2012, 18:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Законченный романтик
***


Профиль
Группа: Завсегдатай
Сообщений: 1784
Регистрация: 11.3.2009
Где: Земля

Репутация: 2
Всего: 19



Цитата(TSerg @  13.10.2012,  19:25 Найти цитируемый пост)
Именно для этого он и придуман. 

Да, он придуман чтобы туда можно было накидать кучу компонентов, но мне удобнее было бы иметь компонент-коллекцию, т.к. тогда бы все компоненты лежали на одной форме, а так придётся перегрузить конструктор формы чтобы создать этот модуль вместе с формой.

Я то в общих чертах уже придумал как это можно реализовать с помощью DataModule, но будет пара подводных камней... вот и хочется компонентик нормальный...


--------------------
"И твоя голова всегда в ответе за то куда сядет твой зад..."

"Я студент - скажите с какого я ВУЗа..."

 smile  smile  smile 
PM MAIL   Вверх
superVad
Дата 14.10.2012, 10:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 735
Регистрация: 6.4.2006
Где: Черкассы, Украина

Репутация: 4
Всего: 15



Цитата(TSerg @  13.10.2012,  17:25 Найти цитируемый пост)
Именно для этого он и придуман.

Если формы создаются динамически и уничтожаются при выходе, то так нарушается целостность. Т.е. уже кто угодно может иметь доступ к датасету формы.
Плюс - надо следить за инициализацией датасетов, закрытием, открытием.


Цитата(DarkProg @  13.10.2012,  13:35 Найти цитируемый пост)
Есть в проекте формы где содержится огромное количество датасетов, порядка 20-30, таких форм не много, но аж глаза разбегаются куда кликнуть, да и датасеты необходимо вечно таскать из стороны в сторону, если надо вдруг передвинуть какую-нибудь кнопочку... В общем мучение ещё то.

Да - проблемно все это. Возможно стоить увеличить окно и перенести все невидимые компоненты в невидимую область и вернуть окну размер.

П.С. может и не целостность нарушается, а инкапсуляция smile как то так вобщем

Это сообщение отредактировал(а) superVad - 14.10.2012, 10:02
PM MAIL   Вверх
DarkProg
Дата 14.10.2012, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Законченный романтик
***


Профиль
Группа: Завсегдатай
Сообщений: 1784
Регистрация: 11.3.2009
Где: Земля

Репутация: 2
Всего: 19



Цитата(superVad @  14.10.2012,  11:00 Найти цитируемый пост)
Если формы создаются динамически и уничтожаются при выходе, то так нарушается целостность. Т.е. уже кто угодно может иметь доступ к датасету формы.
Плюс - надо следить за инициализацией датасетов, закрытием, открытием.

Там фишка будет в том что для каждой такой формы мне нужно будет создавать отдельный экземпляр дата модуля. И быть точно уверенным, что именно этот экземпляр привязан к конкретной форме. А что при этом нарушится может, так это только память, если сделать что-нибудь не так...


Цитата(superVad @  14.10.2012,  11:00 Найти цитируемый пост)
Да - проблемно все это. Возможно стоить увеличить окно и перенести все невидимые компоненты в невидимую область и вернуть окну размер.

Это как бы не решение проблемы на мой взгляд...


--------------------
"И твоя голова всегда в ответе за то куда сядет твой зад..."

"Я студент - скажите с какого я ВУЗа..."

 smile  smile  smile 
PM MAIL   Вверх
superVad
Дата 14.10.2012, 17:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 735
Регистрация: 6.4.2006
Где: Черкассы, Украина

Репутация: 4
Всего: 15



Цитата(DarkProg @  14.10.2012,  16:35 Найти цитируемый пост)
Там фишка будет в том что для каждой такой формы мне нужно будет создавать отдельный экземпляр дата модуля.

Да - вариант.

Цитата(DarkProg @  14.10.2012,  16:35 Найти цитируемый пост)
И быть точно уверенным, что именно этот экземпляр привязан к конкретной форме.

Ну можно создавать в конструкторе формы.
PM MAIL   Вверх
DarkProg
Дата 14.10.2012, 21:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Законченный романтик
***


Профиль
Группа: Завсегдатай
Сообщений: 1784
Регистрация: 11.3.2009
Где: Земля

Репутация: 2
Всего: 19



Цитата(superVad @  14.10.2012,  18:56 Найти цитируемый пост)
Ну можно создавать в конструкторе формы. 

Да, я об этом уже говорил выше, что придётся конструктор перегружать...
Мне только не понятно при этом как поведут себя некоторые ссылки ведь изначально я их буду создавать привязывая к конкретному дата-модулю...


--------------------
"И твоя голова всегда в ответе за то куда сядет твой зад..."

"Я студент - скажите с какого я ВУЗа..."

 smile  smile  smile 
PM MAIL   Вверх
MetalFan
Дата 14.10.2012, 22:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 62
Всего: 128



Цитата(DarkProg @  13.10.2012,  14:35 Найти цитируемый пост)
использование DataModule где и будет валятся вся эта гора датасетов, но хотелось бы всё таки компонентик попробовать сваять...

И чем не решение? смысл ваять какой-то компонент, который будет делать то же самое? давать связанному с формой датамодулю схожее имя, например, с префиксом...


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
DarkProg
Дата 14.10.2012, 23:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Законченный романтик
***


Профиль
Группа: Завсегдатай
Сообщений: 1784
Регистрация: 11.3.2009
Где: Земля

Репутация: 2
Всего: 19



Меня смущает непонятка в написании ссылки, например в DataSource, ведь там пишется имя DataModule на котором лежит конкретный датасет. Всегда ли созданная форма будет ссылаться на тот модуль который я создал... Или вот ссылка на компонент подключения DataModuleBase.ConnectionDase, ведь это у меня так модуль называется, а через точку идёт ссылка на компонент.

Я тут решил поэкспериментировать и получил интересный результат. Если в конкструкторе формы, до inherited Create самой формы прописать создание экземпляра датамодуля, то выглядит так как будто бы каждая форма ссылается на свой модуль, а вот если вдруг создаётся форма у которой в конструкторе нет создания экземпляра модуля, то компоненты на форме начинают ссылаться на уже существующий модуль.
Проверка кто на кого ссылается при помощи разрушения модуля привязанного к форме.

Меня беспокоит такое поведение, потому что пользователи могут учудить такое о чём ни в одной книге не пишут...


--------------------
"И твоя голова всегда в ответе за то куда сядет твой зад..."

"Я студент - скажите с какого я ВУЗа..."

 smile  smile  smile 
PM MAIL   Вверх
northener
Дата 15.10.2012, 01:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1361
Регистрация: 2.9.2010

Репутация: 8
Всего: 20



Цитата(DarkProg @  14.10.2012,  23:07 Найти цитируемый пост)
Я тут решил поэкспериментировать и получил интересный результат.

Код в студию!



--------------------
Но только лошади летают вдохновенно.
Иначе лошади разбились бы мгновенно!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0736 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.