3 / 3 / 1
Регистрация: 22.06.2013
Сообщений: 45

Динамическое создание формы

23.11.2013, 23:09. Показов 3917. Ответов 19

Студворк — интернет-сервис помощи студентам
Можно ли программно создать новую оригинальную форму?
(не копию уже имеющейся в проекте)
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.11.2013, 23:09
Ответы с готовыми решениями:

Динамическое создание объектов формы в Visual Basic 6
Месяц назад решил изучить Visual basic 6. И вот встал перед задачей: Предположим, на форме есть одна кнопка. Нужно, что бы при нажатии на...

Динамическое создание формы
Всем привет, есть малый вопрос насчет передачи параметров.Пишу уже свои функции. Сейчас пишу функции для работы с несколькими формами....

Динамическое создание формы
вот например мне надо динамически создать новою TForm1 и обязательно присвоить событию oncreate другое,так как в основном есть открывание...

19
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
23.11.2013, 23:55
Цитата Сообщение от chai_nick Посмотреть сообщение
Можно ли программно создать новую оригинальную форму?
Что имеешь ввиду под "оригинальностью"? Создавай пустую форму и размещай на ней контролы програмно.
0
3 / 3 / 1
Регистрация: 22.06.2013
Сообщений: 45
23.11.2013, 23:58  [ТС]
Цитата Сообщение от The trick Посмотреть сообщение
Создавай пустую форму
Ок, тогда так: можно ли создать пустую форму программно, если в проекте нет пустой формы? Если можно, то как?
0
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
24.11.2013, 00:36
Цитата Сообщение от chai_nick Посмотреть сообщение
Ок, тогда так: можно ли создать пустую форму программно, если в проекте нет пустой формы? Если можно, то как?
Можно создать через CreateWindowEx, но лучше этого не делать. Для чего ты хочешь создавать форму с нуля?
При создании экземпляра объекта, нужен класс, описывающий объект. Класса нет, объект создать невозможно
1
Заблокирован
24.11.2013, 07:46
пример MDI загрузки:

Visual Basic
1
2
Load Form1(x)
Form1(x).visible = true
или

Set Frm2 as new Form1
Frm2.visible=true // Frm2.show

Frm2 будет копией но со своими событиями, методами и классами
которые легко изменяются (программно)

массив из 256 форм

dim myFrms(255) as new Form1

Закрытие всех форм

Visual Basic
1
2
3
for i=frm.count to 0 step -1
    unload frm(i)
next
1
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
24.11.2013, 10:15
JoraVoenyjHaker, Ему надо создать форму так,чтобы ее не было в проекте.
0
24.11.2013, 10:33

Не по теме:

Вот... кто-нибудь наберёт в гугле Динамическое создание формы
и найдет моё толковое объяснение )))

0
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
24.11.2013, 10:48
Лучший ответ Сообщение было отмечено The trick как решение

Решение

Visual Basic
1
Set frm = Forms.Add("Form1")
имея имя в наличии
2
Заблокирован
24.11.2013, 11:01
Цитата Сообщение от The trick Посмотреть сообщение
Set frm = Forms.Add("Form1")
Коллекция ?
0
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
24.11.2013, 11:03
Цитата Сообщение от JoraVoenyjHaker Посмотреть сообщение
Коллекция ?
Ну да; в ней хранится список загруженных форм.
0
Заблокирован
24.11.2013, 11:06
Ну да... и это работает
Visual Basic
1
2
3
4
5
6
Sub main()
    Dim frm As Form
    Set frm = Forms.Add("Form1")
    frm.Show
 
End Sub
1
3 / 3 / 1
Регистрация: 22.06.2013
Сообщений: 45
28.11.2013, 19:51  [ТС]
Цитата Сообщение от The trick Посмотреть сообщение
Можно создать через CreateWindowEx, но лучше этого не делать.
Почему?

Добавлено через 5 минут
Цитата Сообщение от The trick Посмотреть сообщение
Для чего ты хочешь создавать форму с нуля?
Почему-то моя наивная рационалистская душонка протестует против включения в проект форм, которые могут понадобиться только в редких случаях
Например, 'форма ввода пароля' (спрошу в отдельной теме)
0
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
28.11.2013, 19:56
Цитата Сообщение от chai_nick Посмотреть сообщение
Почему?
Потому что тебе тогда самому надо будет писать обработку сообщений.
Цитата Сообщение от chai_nick Посмотреть сообщение
Почему-то моя наивная рационалистская душонка протестует против включения в проект форм, которые могут понадобиться только в редких случаях
Например, 'форма ввода пароля' (спрошу в отдельной теме)
Ну включай по мере необходимости, в этом нет ничего плохого.
0
Заблокирован
28.11.2013, 20:10
Вообще можно одну форму миллион раз запускать по разному и копировать и изменять

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

Добавлено через 8 минут
Я например храню список кнопок гденибудь в ресурсе
и подгружаю
пример:
Caption=Прозрачность // x=150 // y=100 // w=20 // h=40
Caption=Далее // x=150 // y=200 // w=20 // h=40

и так со всеми компонентами если я хочу использовать одну форму...
но и множество форм мне никак не мешает...
0
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
28.11.2013, 20:12
Цитата Сообщение от JoraVoenyjHaker Посмотреть сообщение
если я хочу использовать одну форму
Когда возникает такая необходимость и для чего это?
0
Заблокирован
28.11.2013, 20:21
Я где-то пример делал калькулятор одна кнопка 12 раз продублировалась
в разных местах и разными названиями...
вообще если проявить чуток изобретательности, то виликие чудеса можно делать на бейсике

Добавлено через 6 минут
Цитата Сообщение от The trick Посмотреть сообщение
Когда возникает такая необходимость и для чего это?
Иногда возникает, когда есть затруднения в передачи параметров или событий
между формами, тогда проще сделать одну форму SDI-интерфейс
со скрытыми объектами
0
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
28.11.2013, 20:21
Цитата Сообщение от JoraVoenyjHaker Посмотреть сообщение
Я где-то пример делал калькулятор одна кнопка 12 раз продублировалась
в разных местах и разными названиями...
Массив контролов - это понятно, много где может пригодится (если характеристики общие). Но заполнять вручную форму контролами без видимой причины (для имитации нескольких форм) - это изврат. Для чего тогда визуальная среда? Если уж нравится, то можно вообще цикл обработки (GetMessage и т.п.) поставить в цикле, в процедуре Main и обойтись вообще без каких-либо ресурсов. Но главный вопрос - зачем?
0
Заблокирован
28.11.2013, 20:23
Но я ещё раз повторяю, что и множеством различных форм, под разные задачи
в одном проекте я тоже охотно пользуюсь
0
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
28.11.2013, 20:24
Цитата Сообщение от JoraVoenyjHaker Посмотреть сообщение
Иногда возникает, когда есть затруднения в передачи параметров или событий
между формами, тогда проще сделать одну форму SDI-интерфейс
со скрытыми объектами
Можно написать что-то типа SendMessage и рассылать параметры куда угодно, или сделать публичные свойства у форм, в конце концов CallByName.
0
Заблокирован
28.11.2013, 20:36
Но не люблю я с API связываться, боюсь запутаться в этих дебрях
бейсик то я более-менее знаю, а вот API это тёмный лес... но вот когда
придёт ко мне просветление тогда и с WinApi буду извращаться )))

Добавлено через 1 минуту
CallByName это и то надо публичные процедуры-переменные создовать
чтоб вызывать их потом
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.11.2013, 20:36
Помогаю со студенческими работами здесь

Динамическое создание формы
Всем привет. Возникла проблема при динамическом создании новой формы: На Form1 есть кнопка при нажатии которой создается Form2. Так же...

Динамическое создание формы
Здравствуйте, помогите написать приложение, где на форме есть кнопка «создать форму», которая динамически создает очередную форму. При...

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

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

Динамическое создание формы
Требуется через js отправить пользователя с пост запросом, адрес статичный но поля нет, (пользователь жмёт на кнопку, идёт запрос на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определенном условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru