Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 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-сайт: sham.clan.su
 Профиль | | #1
Добавлено: 24.05.07 18:34
ну в зависимости от задач, которые ты ставишь, так и правильно

какая разница? ты два раза одно и то же написал для разных форм,

вот и решай, какой экземпляр класса тебе надо

Ответить

Номер ответа: 2
Автор ответа:
 KreAtoR



Вопросов: 120
Ответов: 438
 Профиль | | #2 Добавлено: 24.05.07 19:08
вообще я хотел сделать класс, Sub которого создает Окно и выводит на него всю необходимую информацию. Только вот я не вижу смысла для этого делать еще одно окно. В данном случае я клонирую окно а не создаю новое из класса окон.
Может все таки есть более логический вариант?

Ответить

Номер ответа: 3
Автор ответа:
 -АлександР-



Вопросов: 55
Ответов: 1008
 Web-сайт: sham.clan.su
 Профиль | | #3
Добавлено: 24.05.07 21:44
CreateWindow... всегда рулит

а вообще на вб6 забей,
короче, я не знаю, если кто знат, скажите

на вб6 вообще геморой, здесь нельзя создать форму как экземпляр класса от класса Form

на VB.NET все делается просто:

        Dim k As New Form
        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
Ну вы даете.... Код:

Dim frm As Form1
Set frm = New Form1


именно что создает экземпляр формы (а по сути своей класса) Form1.

Если вдруг форма уже есть, а нужна еще однв ссылка на нее, то рулит код:

Dim frmRef As Form1
Set frmRef = frmExist ' где frmExist указывает на уже существующий экземпляр Form1

Ответить

Номер ответа: 6
Автор ответа:
 -АлександР-



Вопросов: 55
Ответов: 1008
 Web-сайт: sham.clan.su
 Профиль | | #6
Добавлено: 25.05.07 20:01
не, ему нужно было создать экземпляр класса не того, который уже есть, Form1, а от как бы, прородителя форм Form, как в VB.NET

Ответить

Номер ответа: 7
Автор ответа:
 Viper



ICQ: 249094859 

Вопросов: 0
Ответов: 310
 Профиль | | #7 Добавлено: 26.05.07 07:13
Ну ежели ему хочется именно этого, то именно это и не получится, т.е. нельзя написать
Dim F as Form
Set F = New Form

Выход - юзанье CreateWindow... ток непонятно на кой это надо...

Ответить

Номер ответа: 8
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #8 Добавлено: 26.05.07 08:23
VB .NET рулит - подтверждаю

Ответить

Номер ответа: 9
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #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-сайт: sham.clan.su
 Профиль | | #14
Добавлено: 04.06.07 19:40
ZagZag
Она не занимает памяти пока ее не загрузить
не совсем так, она не занимает оперативной памяти, но размер программы увеличивается ;)


2HACKER, поздно, HACKER, поздно...

Ответить

Номер ответа: 15
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #15 Добавлено: 04.06.07 21:03
Он хочет создать форму из ничего. Но при этом не использовать АПИ.
Цитату в студию, невижу я обязательного условия не использовать апи.

поздно, HACKER, поздно...

Чё поздно то? Я могу массу примеров привести где дотнет непоможет если не юзать традиционные апи...

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам