Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Открыть форму проекта через CreateObject() / 3 сообщений из 3, страница 1 из 1
16.12.2003, 17:14
    #32354326
Простой рабочий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Открыть форму проекта через CreateObject()
У меня в проекте несколько десятков форм. Очень накладно их открывать через

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
17.12.2003, 13:09
    #32355174
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Открыть форму проекта через CreateObject()
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
24.12.2003, 23:55
    #32362610
Os123
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Открыть форму проекта через CreateObject()
Вообще для таких больших проектов рекомендуется объединять формы в ActiveX'ы. При этом основному приложению достаточно содержать только одну пустую форму на которую и будет натягиваться указанный через параметр ActiveX (хоть твой хоть чей-то другой).
Плюсы: как правило время на компиляцию изменённых компонентов уже нужно гораздо меньше.
Минусы: при использовании CreateObject в VB отваливается отладка.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Открыть форму проекта через CreateObject() / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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