|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
28.03.2012, 17:06 | #1 |
Заблокирован
Регистрация: 04.07.2011
Сообщений: 261
|
Динамическое создание компонентов с динамически задаваемыми именами - возможно ли это??
Здравствуйте!
Вопрос элементарный, но решить не получается хотя интернет весь прочитал. Есть некая родительская форма которая затем наследуется кучей форм (назовём BaseForm). Из этой формы создано много дочерних inherited форм (назовём FormA,FormB,FormX..), в каждой уже свои дела. Есть некий единый объект DataMaster отдельный от всех этих форм, к нему обращаются все дочерние формы во время работы. Задача - нужно из дочерних форм OnCreate создавать в DataMaster некий Dataset с заданным именем, чтобы все формы могли к нему обратиться, а после использования уничтожать. Вопрос - какой код написать в BaseForm, чтобы при открытии FormA,FormB,FormX.. в DataMaster создавался Dataset с именем соответствующим Form вида DatasetFormA,DatasetFormB,DatasetFo rmX... ??? (чтобы можно было к нему обращаться) PS Получается сделать всё, кроме как главное - Delphi никак не даёт указать динамическое название для создаваемого объекта вида ['Dataset'+Self.Name := fDataMaster.Create(TDataset)]. Пробовал через AS ['Dataset'+Self.Name as DatasetDef:= fDataMaster.Create(TDataset)] и соот наоборот - тоже не пропускает. Пробовал иначе - создавать через единую переменную DatasetDef, а затем [DatasetDef.Name:='Dataset'+Self.Nam e] - но программа на этом вылетает с критической ошибкой, кроме того, этот код видимо не подойдёт для созданных Dataset начиная со второго, тк название переменной как у первого созданного. |
28.03.2012, 17:50 | #2 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
компоненты разных форм могут иметь одинаковое название.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
28.03.2012, 17:55 | #3 |
Заблокирован
Регистрация: 04.07.2011
Сообщений: 261
|
Все компоненты создаются в ОДНОЙ ЕДИНОЙ ФОРМЕ!
(По примеру - компоненты Dataset из всех окон нужно создать в одном объекте DataMaster!) |
28.03.2012, 21:26 | #4 | |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
...кто мешает объявить глобальный динамический массив компонентов и при создании каждой формы просто индексировать новый элемент?
Цитата:
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
|
28.03.2012, 21:40 | #5 |
Заблокирован
Регистрация: 04.07.2011
Сообщений: 261
|
Не понял, что Вы предложили, но мне кажется это работать не будет. :D
Или вы предлагаете заранее их определить? Это не решение задачи, это и так понятно, можно и в каждой форме свой код написать... |
29.03.2012, 00:45 | #6 |
Пользователь
Регистрация: 25.03.2012
Сообщений: 15
|
Вместо memo можно подставить любой другой компонент:
Код:
Код:
|
29.03.2012, 23:16 | #7 |
Заблокирован
Регистрация: 04.07.2011
Сообщений: 261
|
Код:
Вот и не понятно как написать в базовой форме BaseForm универсальный код работающий во всех inherited формах FormA,FormB,FormX динамически создающий объекты в другом общем объекте DataMaster с использование названий inherited форм вида DatasetA,DatasetB,DatasetX... ??? |
30.03.2012, 00:21 | #8 |
Старожил
Регистрация: 08.02.2012
Сообщений: 2,173
|
можно попробовать как-то так оформить (процесс удаления по-хорошему дорабатывать нужно, но смысл очевиден)
Код:
Правильно поставленная задача - три четверти решения.
Последний раз редактировалось DiemonStar; 30.03.2012 в 00:27. |
30.03.2012, 07:39 | #9 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
30.03.2012, 08:46 | #10 | |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
Цитата:
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Динамическое создание и удаление компонентов на форме | The SCS | Общие вопросы Delphi | 1 | 11.02.2012 13:11 |
[Новичёк]Динамическое создание компонентов из бд | Detka.i.alex | Общие вопросы Delphi | 3 | 04.04.2011 16:23 |
динамическое создание компонентов | DOLBY | Компоненты Delphi | 10 | 17.10.2010 14:03 |
Динамическое создание компонентов | Nice42ru | Помощь студентам | 4 | 03.01.2010 20:51 |
Как динамически добавить Мемо на форму? Динамическое создание компонентов! | werser | Помощь студентам | 1 | 14.06.2007 00:39 |