копия формы

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
iolaus
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 176
Зарегистрирован: 19.03.2002 (Вт) 18:33
Откуда: Москва

копия формы

Сообщение iolaus » 22.08.2006 (Вт) 12:40

подскажите с какой стороны подходить.

есть форма на ней много произвольных элементов (кнопок, тексбоксов) с разными событиями. нужно чтобы эти элементы отображались на другой форме и события также работали.

заранее спасибо
This message will self destruct in five seconds!!!

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 22.08.2006 (Вт) 12:45

Сделай UserControl с этими кнопками и размещай на форме его.
Lasciate ogni speranza, voi ch'entrate.

GB826
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 312
Зарегистрирован: 04.08.2005 (Чт) 0:58
Откуда: Планета #3

Сообщение GB826 » 22.08.2006 (Вт) 15:03

Если именно копия формы, то лучше просто использовать форму, как класс. А иначе как сказал alibek...
Код: Выделить всё

dim frm as new fYourForm
...
frm.show
...
Пора уже всем хорошим людям собраться и убить всех плохих людей.

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 22.08.2006 (Вт) 16:39

Э... SetParent в отдельных случаях может помочь.
Но UserControl, как правило, практичней.
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

iolaus
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 176
Зарегистрирован: 19.03.2002 (Вт) 18:33
Откуда: Москва

Сообщение iolaus » 23.08.2006 (Ср) 9:13

usercontrol не ссовсем то.

форма каждый раз разная, количество элементов на ней случайное. не только кнопки, а все что угодно с разным местом расположения с событиями от них.

показывать надо не форму содержащую эти элементы, а на уже существующей и открытой добавлять теже элементы что и на той. с соблюдением их местоположения и самое главное событий которые они вызывают!

вот так вообще можно?
This message will self destruct in five seconds!!!

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 23.08.2006 (Ср) 10:46

Что-то плохо понятно зачем все это автору нужно... Теоретически это возможно, но проблем с этим огребешь немерянно, тем более с учетом случайного количества элементов...
Весь мир матрица, а мы в нем потоки байтов!

NashRus
Постоялец
Постоялец
 
Сообщения: 388
Зарегистрирован: 18.03.2006 (Сб) 1:16

Сообщение NashRus » 23.08.2006 (Ср) 14:00

2iolaus, зема, расскажи все как есть - ничего не таи. не позорь Мытищи !

iolaus
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 176
Зарегистрирован: 19.03.2002 (Вт) 18:33
Откуда: Москва

Сообщение iolaus » 23.08.2006 (Ср) 17:48

нужно для того чтобы не открывать новое окно. работать всегда на одном. но не запружать кодом и элементами его. иметь другие окна как шаблоны, а на текущее выводить то что нужно в нужный момент для ввода данных, последущего расчета, и вывода результата.

по сути главное иметь одну форму и делать все динамически. если есть другие идеи как можно сделать буду рад слышать.

весь код писать в одном месте просто невозможно, потому как нужно очень большое количество элементов и кода и все это в одном месте просто не удобна, а во вторых возможно будут дополнения (типо плагинов) рикрепляемые извне прямо во время работы программы и их тоже надо обрабатывать.

посоветуйте как быть?:)
This message will self destruct in five seconds!!!

NashRus
Постоялец
Постоялец
 
Сообщения: 388
Зарегистрирован: 18.03.2006 (Сб) 1:16

Сообщение NashRus » 23.08.2006 (Ср) 20:04

тут так просто не сделаешь. тут думать надо.

0. Транслировать события в разные модули / классы.

1. Делать подгрузку контролов динамически и разгребать события от них и логику работы по разным классам / модулям. Минус - выставлять положения и внешний вид придется вручную в рантайме.

2. Действительно, сделать сколько нужно UserControl'ов и туда все спихнуть. т.о. и нарисуешь что хочешь и события обработаешь.

... еще много чего зависит от конкретной задачи....

N. Ну очень универсально. Ну очень сложно сделать по уму. Сделать язык разметки по типу HTML (например, в XML), рендерить содержимое, ловить единообразно эвенты и скриптами реализовывать бизнес-логику. Плюс - гибко и можно в принципе реализовывать на разных уровнях детализации - например, не опускаясь до самостоятельной реализации / отрисовки контролов.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 23.08.2006 (Ср) 20:09

NashRus писал(а):Сделать язык разметки по типу HTML (например, в XML), рендерить содержимое, ловить единообразно эвенты и скриптами реализовывать бизнес-логику.

Вообще-то это уже сделано.
И в .NET, и в будущих версиях Windows.
Lasciate ogni speranza, voi ch'entrate.

Debugger
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1667
Зарегистрирован: 17.06.2006 (Сб) 15:11

Сообщение Debugger » 23.08.2006 (Ср) 20:24

iolaus писал(а):но не запружать кодом

Нет! Так не получится.. Грехов и багов не оберёшься...

NashRus
Постоялец
Постоялец
 
Сообщения: 388
Зарегистрирован: 18.03.2006 (Сб) 1:16

Сообщение NashRus » 23.08.2006 (Ср) 22:32

Вообще-то это уже сделано.
И в .NET, и в будущих версиях Windows.


я пропустил смену названия форума ?

конечно, сделано! вот и у меня на ВБ6 сделано.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 23.08.2006 (Ср) 22:39

Вариант для извращенцев:

Сделать mdi форму (это типа твоя эталонная форма), а в ней показывать чаилды с установленным Border style = 0 и с WindowState = 2 (vbMaximized).

А вообще идея изначально група. Лучше сделай всё в одной форме. И пусть будет много кода. Я думаю что не так уж и много его будет. У меня вот есть форма с 4000 строк кода. Вот это много, да... Но бывало и больше.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

iolaus
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 176
Зарегистрирован: 19.03.2002 (Вт) 18:33
Откуда: Москва

Сообщение iolaus » 23.08.2006 (Ср) 22:51

народ спасибо! походу usercontrolами и вправду проще всего. буду побовать.

не в тему, но вот давно мучает вопрос. я на вб6 пишу есть смысл на 205 переходить? несколько раз просто замечал, что нехватает некоторх возможностй, что там встроеные, но вроде писал их вручную и пробем небыло. но всеже интересо. как оно там? бустрей ? удобней?
This message will self destruct in five seconds!!!

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 23.08.2006 (Ср) 22:54

ну это кому как. Я перешёл на .NET просидел 2 дня и ушёл обратно.

Скажем так, придётся несколько месяцев потратить на изучение, прежде чем ты что то напишешь.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: SemrushBot, Yandex-бот и гости: 43

    TopList