powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Открыть форму проекта через CreateObject()
3 сообщений из 3, страница 1 из 1
Открыть форму проекта через CreateObject()
    #32354326
Простой рабочий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня в проекте несколько десятков форм. Очень накладно их открывать через

Dim f As Form
Select Case NameForm
Case Name1
Set f = New Form1
Case Name2
Set f = New Form2
...
...
End Select


Нельзя ли их открывать через процедуру CreateObject()?
Пробовал

Dim f As Object
Set f=CreateObject(NameForm)

но выходит ошибка "ActiveX component can't create object".

Ну или как-нибудь в этом духе.
...
Рейтинг: 0 / 0
Открыть форму проекта через CreateObject()
    #32355174
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CreateObject создает COM-объекты, а не экземпляры внутренних классов. Юзай New. Проще всего сделать такой финт ушами:

Public Enum FormTypes
frmMain = 1
frmDirectory = 2
...
End Enum

Public Function CreateForm(ft As FormTypes) As Form
Dim f As Form
Select Case ft
Case frmMain: Set f = New Form1
Case frmDirectory: Set f = New Form2
End Select
Set CreateForm = f
End Function
...
Рейтинг: 0 / 0
Открыть форму проекта через CreateObject()
    #32362610
Os123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вообще для таких больших проектов рекомендуется объединять формы в ActiveX'ы. При этом основному приложению достаточно содержать только одну пустую форму на которую и будет натягиваться указанный через параметр ActiveX (хоть твой хоть чей-то другой).
Плюсы: как правило время на компиляцию изменённых компонентов уже нужно гораздо меньше.
Минусы: при использовании CreateObject в VB отваливается отладка.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Открыть форму проекта через CreateObject()
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]