Страница: 1 | 2 |
Вопрос: Как лучше динамически объявить Form
Добавлено: 24.05.07 12:19
Автор вопроса: KreAtoR
Я могу динамически объявить форму только двумя способами
1. это не подходящий спрособ
Dim frm as Form
Set frm = New Form1
тогда появляется клон первой формы
2. уже лучше, но все равно очень грубо и не правильно
-Создаем еще одну форму Form2
Dim frm as Form
Set frm = New Form2
тогда появляется клон второй формы. Плюс один в том, что эта форма пустая просто.
Подскажите как сделать правильно?
Ответы
Всего ответов: 22
Номер ответа: 1
Автор ответа:
-АлександР-
Вопросов: 55
Ответов: 1008
Web-сайт:
Профиль | | #1
Добавлено: 24.05.07 18:34
ну в зависимости от задач, которые ты ставишь, так и правильно
какая разница? ты два раза одно и то же написал для разных форм,
вот и решай, какой экземпляр класса тебе надо
Номер ответа: 2
Автор ответа:
KreAtoR
Вопросов: 120
Ответов: 438
Профиль | | #2
Добавлено: 24.05.07 19:08
вообще я хотел сделать класс, Sub которого создает Окно и выводит на него всю необходимую информацию. Только вот я не вижу смысла для этого делать еще одно окно. В данном случае я клонирую окно а не создаю новое из класса окон.
Может все таки есть более логический вариант?
Номер ответа: 3
Автор ответа:
-АлександР-
Вопросов: 55
Ответов: 1008
Web-сайт:
Профиль | | #3
Добавлено: 24.05.07 21:44
CreateWindow... всегда рулит
а вообще на вб6 забей,
короче, я не знаю, если кто знат, скажите
на вб6 вообще геморой, здесь нельзя создать форму как экземпляр класса от класса Form
на VB.NET все делается просто:
k.Show()
ибо там ООП, а тут фуфлё
Номер ответа: 4
Автор ответа:
ZagZag
ICQ: 295002202
Вопросов: 87
Ответов: 1684
Профиль | | #4
Добавлено: 25.05.07 08:07
Он наверное спрашивал как создать не копию формы, а пустую форму из ничего.
Я так и ненашел как это сделать средствами VB. Прийдется API CreateWindow
Номер ответа: 5
Автор ответа:
Viper
ICQ: 249094859
Вопросов: 0
Ответов: 310
Профиль | | #5
Добавлено: 25.05.07 08:33
Ну вы даете.... Код:
Set frm = New Form1
именно что создает экземпляр формы (а по сути своей класса) Form1.
Если вдруг форма уже есть, а нужна еще однв ссылка на нее, то рулит код:
Set frmRef = frmExist ' где frmExist указывает на уже существующий экземпляр Form1
Номер ответа: 6
Автор ответа:
-АлександР-
Вопросов: 55
Ответов: 1008
Web-сайт:
Профиль | | #6
Добавлено: 25.05.07 20:01
не, ему нужно было создать экземпляр класса не того, который уже есть, Form1, а от как бы, прородителя форм Form, как в VB.NET
Номер ответа: 7
Автор ответа:
Viper
ICQ: 249094859
Вопросов: 0
Ответов: 310
Профиль | | #7
Добавлено: 26.05.07 07:13
Ну ежели ему хочется именно этого, то именно это и не получится, т.е. нельзя написать
Set F = New Form
Выход - юзанье CreateWindow... ток непонятно на кой это надо...
Номер ответа: 8
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #8
Добавлено: 26.05.07 08:23
VB .NET рулит - подтверждаю
Номер ответа: 9
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #9
Добавлено: 26.05.07 12:04
А не судьба создать в design-time абсолютно пустую форму, и из нее уже
плодить экземпляры?
P.S. VB 2005 рулит.
Номер ответа: 10
Автор ответа:
Silver Ferrum
ICQ: 422640045
Вопросов: 12
Ответов: 144
Профиль | | #10
Добавлено: 26.05.07 13:12
..я не понимаю, зачем тебе пустые формы?
Номер ответа: 11
Автор ответа:
KreAtoR
Вопросов: 120
Ответов: 438
Профиль | | #11
Добавлено: 04.06.07 10:29
динамически их объявлять что бы. Незачем им просто так в памяти лежать, все время пока прога выполняется. Есть такие окна, которые нужны ну один раз, если вообще нужны. Поэтому хочу создавать их динамически, чтоб зря память не жрали.
А то что из класса Форму создать незя, это остой. Пора на НЕТ переходить
Номер ответа: 12
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #12
Добавлено: 04.06.07 14:47
Вот за это и нелюблю дотнетчиков, они сбивают молодое поколение с верного пути KreAtoR не слушай их, в вб6 всё можно реализовать, только объясни что ты хочешь более конкретно..
1) Создать несколько экземпляров 1к1 ОДНОЙ ФОРМЫ
2) Создать один экземпляр одной формы (Form1) + создать экземпляр второй формы (Form2)
?
Номер ответа: 13
Автор ответа:
ZagZag
ICQ: 295002202
Вопросов: 87
Ответов: 1684
Профиль | | #13
Добавлено: 04.06.07 17:50
Он хочет создать форму из ничего. Но при этом не использовать АПИ.
ИМХО, незачем это делать. Проще создать обычную форму. Она не занимает памяти пока ее не загрузить (Load frmMsgBox)
Номер ответа: 14
Автор ответа:
-АлександР-
Вопросов: 55
Ответов: 1008
Web-сайт:
Профиль | | #14
Добавлено: 04.06.07 19:40
ZagZag
2HACKER, поздно, HACKER, поздно...
Номер ответа: 15
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #15
Добавлено: 04.06.07 21:03
Чё поздно то? Я могу массу примеров привести где дотнет непоможет если не юзать традиционные апи...