Вопрос: Как лучше динамически объявить Form | Добавлено: 24.05.07 12:19 |
Автор вопроса: ![]() |
Я могу динамически объявить форму только двумя способами
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 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 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 все делается просто: Dim k As New Form
k.Show() ибо там ООП, а тут фуфлё |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ICQ: 295002202 Вопросов: 87 Ответов: 1684 |
Профиль | Цитата | #4 | Добавлено: 25.05.07 08:07 |
Он наверное спрашивал как создать не копию формы, а пустую форму из ничего.
Я так и ненашел как это сделать средствами VB. Прийдется API CreateWindow |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() ![]() 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-сайт: Профиль | Цитата | #6 | Добавлено: 25.05.07 20:01 |
не, ему нужно было создать экземпляр класса не того, который уже есть, Form1, а от как бы, прородителя форм Form, как в VB.NET
|
Номер ответа: 7 Автор ответа: ![]() ![]() ![]() ![]() ICQ: 249094859 Вопросов: 0 Ответов: 310 |
Профиль | Цитата | #7 | Добавлено: 26.05.07 07:13 |
Ну ежели ему хочется именно этого, то именно это и не получится, т.е. нельзя написать
Dim F as Form
Set F = New Form Выход - юзанье CreateWindow... ток непонятно на кой это надо... |
Номер ответа: 8 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Вопросов: 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 Автор ответа: ![]() ![]() ICQ: 422640045 Вопросов: 12 Ответов: 144 |
Профиль | Цитата | #10 | Добавлено: 26.05.07 13:12 |
..я не понимаю, зачем тебе пустые формы? |
Номер ответа: 11 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 120 Ответов: 438 |
Профиль | Цитата | #11 | Добавлено: 04.06.07 10:29 |
динамически их объявлять что бы. Незачем им просто так в памяти лежать, все время пока прога выполняется. Есть такие окна, которые нужны ну один раз, если вообще нужны. Поэтому хочу создавать их динамически, чтоб зря память не жрали.
А то что из класса Форму создать незя, это остой. Пора на НЕТ переходить ![]() |
Номер ответа: 12 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client Вопросов: 236 Ответов: 8362 |
Профиль | Цитата | #12 | Добавлено: 04.06.07 14:47 |
Вот за это и нелюблю дотнетчиков, они сбивают молодое поколение с верного пути ![]() 1) Создать несколько экземпляров 1к1 ОДНОЙ ФОРМЫ 2) Создать один экземпляр одной формы (Form1) + создать экземпляр второй формы (Form2) ? |
Номер ответа: 13 Автор ответа: ![]() ![]() ![]() 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 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client Вопросов: 236 Ответов: 8362 |
Профиль | Цитата | #15 | Добавлено: 04.06.07 21:03 |
Он хочет создать форму из ничего. Но при этом не использовать АПИ. Цитату в студию, невижу я обязательного условия не использовать апи.
поздно, HACKER, поздно...
Чё поздно то? Я могу массу примеров привести где дотнет непоможет если не юзать традиционные апи... |
|