|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
06.02.2015, 05:56 | #1 |
t45t
Участник клуба
Регистрация: 20.03.2012
Сообщений: 1,849
|
Динамическое создание форм с адресацией
Ребят, простите за глупый пост, но все же...
Есть 4 формы, на одной из них листбокс, по клику на запись нужно создать форму с префиксом этой записи, допустим %прем% (в листбоксе будет написано просто: таблица премий). В голову пришла идея с динамическим массивом из форм, но на каждой динамической форме должна создаться кнопкэ, стринглист и панель, плюс процедурный обработчик как-то связать надо. В общем сложность в адресации (узнать какие формы открыты) В этом самая главная сложность, по клику на листбокс нужно создать столько динамических форм, сколько пользователь кликнет, плюс предусмотреть какие открыты. З.ы. да, решил все-таки программу по сметам дописать :D. Если можно хоть какой-то кривой пример кода. Спасибо! З.з.ы: листбокс изначально пуст, в него помещается наименование промежуточной таблицы, созданной пользователем.
from dark to light)
Последний раз редактировалось Алексей_2012; 06.02.2015 в 05:59. |
06.02.2015, 07:18 | #2 | |
Участник клуба
Регистрация: 10.08.2010
Сообщений: 1,392
|
Пустой базар . Без наработки .
Цитата:
E_MAIL: rijgvina7@yahoo.com
|
|
06.02.2015, 07:46 | #3 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Во-первых создай в дизайне нужную форму, но убери ее из создания в DPR файле (или в свойствах проекта). По ходу работы создавай экземпляр формы так как делается это в DPR. Или как обычно Код:
Кстати пример на форуме уже где-то был. Да хотя бы вот: http://www.programmersforum.ru/showthread.php?t=67085
I'm learning to live...
|
|
08.02.2015, 21:28 | #4 |
t45t
Участник клуба
Регистрация: 20.03.2012
Сообщений: 1,849
|
Ребят, форма создается, но открывается только одна, при клике на листбокс, в общем гляньте проект, пожалуйста.
А еще, как освободить память, занимаемую динамической формой? То есть писать свою процедуру и вызывать ее при mess_form.onclose:: procedure;? Как-то так? Код:
from dark to light)
Последний раз редактировалось Алексей_2012; 08.02.2015 в 21:35. |
08.02.2015, 21:39 | #5 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
А зачем? Создай заранее готовую форму, накидай на нее компоненты, а потом просто создавай в динамике.
Можно кстати array of TForm; заменить на ... Кстати я выше говорил на что, внимательнее будь. И тогда у тебя будет массив любых видов форм а не только TForm. Накидывать компоненты на форму во время исполнения это учебная задача или ты хочешь какую-то практическую задачу решить? Если учебная то я еще понимаю но на практике не стоит этого делать. Если разнообразных форм будет немного, то лучше их в дизайне подготовить.
I'm learning to live...
|
08.02.2015, 21:52 | #6 |
Участник клуба
Регистрация: 12.09.2012
Сообщений: 1,030
|
Для экономии памяти и нервов проще будет менять одну и ту же форму.
Например, если форма не создана(с целью экономии памяти так и делают), то создаем её, заполняем и показываем. Если форма просто закрыта(или спрятана), но не уничтожена из памяти, то просто заполняем её как надо и показываем.
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби. |
08.02.2015, 21:53 | #7 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
А создавать-активировать без всяких массивов так например
Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 08.02.2015 в 21:57. |
08.02.2015, 21:58 | #8 |
t45t
Участник клуба
Регистрация: 20.03.2012
Сообщений: 1,849
|
Т.е. при закрытии формы проблема освобождения памяти, занимаемой формой и ее компонентами отпадает сама собой?
не работает код з.з.ы, будете смеяться, но у меня мысль создать массив пользовательских типов из Tform TstringGrid Tbutton :D потом при закрытии проверить какая из форм закрыта и уничтожить все объекты. Stilet, я стараюсь, но не особо понимаю
from dark to light)
Последний раз редактировалось Алексей_2012; 08.02.2015 в 22:00. |
08.02.2015, 22:01 | #9 | |
Форумчанин
Регистрация: 16.01.2015
Сообщений: 672
|
Цитата:
|
|
08.02.2015, 22:02 | #10 | ||
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Цитата:
Цитата:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 08.02.2015 в 22:06. |
||
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Создание форм | Михаил Юрьевич | Общие вопросы Delphi | 5 | 16.07.2012 03:41 |
Динамическое создание | romanzi | Общие вопросы Delphi | 1 | 24.08.2011 12:20 |
Создание нескольких форм | Лера123 | Общие вопросы Delphi | 4 | 16.10.2010 18:16 |
Создание форм | DeNyS=) | Microsoft Office Access | 2 | 13.12.2009 15:30 |
Динамическое создание нескольких форм | Gypsy | Общие вопросы Delphi | 18 | 21.10.2009 14:52 |