Forms 2.0 - создание новой UserForm'ы в run-time

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
zHackLeX
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 283
Зарегистрирован: 23.10.2003 (Чт) 21:08

Forms 2.0 - создание новой UserForm'ы в run-time

Сообщение zHackLeX » 20.12.2006 (Ср) 12:52

Народ, собсно сабж.
Возможно ли сделать у себя в проекте некий Form Designer?
Да, ещё ЗЫ.
Как можно использовать метод Forms.Add ?
(он есть, я его чувствую - а он ругается типа type mismatch)
There is no knowledge that is not power...

X,C,A,B,C,Z,X,A,B,C,Z....
Многие ли помнят? :)

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 20.12.2006 (Ср) 13:36

Может лучше подключить некий VBA?
Лучший способ понять что-то самому — объяснить это другому.

zHackLeX
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 283
Зарегистрирован: 23.10.2003 (Чт) 21:08

Сообщение zHackLeX » 20.12.2006 (Ср) 13:41

Было бы здорово, но...
... Некий vba, подключенный к проекту, не являющемуся ActiveX-exe, работает несколько некорректно (я над этим работаю, но он всё равно ещё глючит в некоторых местах). Поэтому сабж.
There is no knowledge that is not power...

X,C,A,B,C,Z,X,A,B,C,Z....
Многие ли помнят? :)

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Сообщение jangle » 20.12.2006 (Ср) 13:49

Народ, собсно сабж.
Возможно ли сделать у себя в проекте некий Form Designer?



http://greatis.com/vb/formdes/

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

Сообщение Хакер » 20.12.2006 (Ср) 14:06

Дык ведь платный... Не пойдёт.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

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

Re: Forms 2.0 - создание новой UserForm'ы в run-time

Сообщение Andrey Fedorov » 20.12.2006 (Ср) 14:18

zHackLeX писал(а):Как можно использовать метод Forms.Add ?
(он есть, я его чувствую - а он ругается типа type mismatch)


Forms.Add "MyForm"
Forms(0).Show

То бишь чтобы зная имя формы ее можно было показать...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Сообщение jangle » 20.12.2006 (Ср) 14:19

Дык ведь платный... Не пойдёт.


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

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

Re: Forms 2.0 - создание новой UserForm'ы в run-time

Сообщение Andrey Fedorov » 20.12.2006 (Ср) 14:22

zHackLeX писал(а):Народ, собсно сабж.
Возможно ли сделать у себя в проекте некий Form Designer?


А в принципе - почему бы и нет? Я препятствий не вижу...

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

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

Сообщение Хакер » 20.12.2006 (Ср) 14:47

jangle
Ценный сотрудник, этот тот, кто умеет принести фирме больше бабла отпродажи проекта, и потратить меньше на его разработку...

Не понимаю я вас, баблатратильщикой.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Сообщение jangle » 20.12.2006 (Ср) 14:59

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

Не понимаю я вас, баблатратильщикой.


Если ты работаешь в софтверной компании, наверняка знаешь, что разработка конкурентноспособного ПО стоит очень дорого и занимает массу времени. Если речь идет о снижении сложности разработки и ускорении выпуска продукта, всегда полезнее работать с готовыми компонентами, чем писать свои на коленке.
В любом случае - это обойдется намного дешевле, проверено опытом на множестве проектов!

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

Сообщение Хакер » 20.12.2006 (Ср) 15:00

Обратное тоже проверенно опытом множества проектов.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Сообщение jangle » 20.12.2006 (Ср) 15:13

Вот пример простейшего дизайнера, использовать его не рекомендуется (слишком много глюков) но поковырять интересно.
И все же, для коммерческого проекта, рекомендую Form Designer от Greatis. Использовал его в серьезном проекте, есть пара нефатальных багов, но в общем он оставил очень благоприятное впечатление.
Вложения
ctrldragII.zip
(16.74 Кб) Скачиваний: 46

S397
Новичок
Новичок
 
Сообщения: 25
Зарегистрирован: 02.12.2005 (Пт) 13:31

Сообщение S397 » 21.12.2006 (Чт) 12:54

Может лучше подключить некий VBA?

Сколько нынче стоит?
В 2001 году я вел переговоры с
http://vba.summsoft.com/
Цена была безумная. Если мне не изменяет память 2 схемы лицензирования:
    1-я 30$ с каждого проданного комплекта ПО вкл VBA
    2-я для внутр использования орг-ций не менее 1000 лиц по цене 40$ за штуку.

zHackLeX
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 283
Зарегистрирован: 23.10.2003 (Чт) 21:08

Сообщение zHackLeX » 21.12.2006 (Чт) 12:58

Ну так userform'у в run-time иожно создать или нет?
There is no knowledge that is not power...

X,C,A,B,C,Z,X,A,B,C,Z....
Многие ли помнят? :)

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 21.12.2006 (Чт) 13:28

Нет.
Лучший способ понять что-то самому — объяснить это другому.

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

Сообщение Andrey Fedorov » 21.12.2006 (Чт) 13:32

Да можно-можно.

Самое простое - создай шаблон формы (ибо BorderStyle в RunTime нельзя определить) и далее:

Код: Выделить всё
Forms.Add "MyTemplateForm1"
With Forms(Forms.Count-1)
    ' Добавляем контролы и пр.
    .Show vbModal, Me
End With


Можно сделать чтобы и функции обработки событий контролов/формы юзеры сами могли писать, правда не на VB, а на VBS.
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

zHackLeX
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 283
Зарегистрирован: 23.10.2003 (Чт) 21:08

Сообщение zHackLeX » 21.12.2006 (Чт) 17:30

[offtop]...опасный парень. Он читает мои мысли и угадывает идеи.
телепаты среди нас. Их с каждым днём всё больше...[/offtop] :)

То есть я создаю юзверформу с помощью "Добавить"=>"Forms 2.0 form", в оный класс добавляю метод SetBorderStyle, где апишками обворачиваю это дело
[offtop]
(есть у userform'ы хэндл, есть - проверял когда надо было сделать из юзерформы проекта МИФ (вот прикол, на русской раскладке клавиатуры VBA- это миф... ) сделать очень крутую панель инструментов приложения-хозяина. Сделал, без проблем)
[/offtop]
А потом как раз встаёт вопрос обработки событий, и, как вы говорите, события можно обработать на VBScript. Подскажите метод привязки (контрол-то добавляется в run-time...)
Последний раз редактировалось zHackLeX 21.12.2006 (Чт) 17:44, всего редактировалось 1 раз.
There is no knowledge that is not power...

X,C,A,B,C,Z,X,A,B,C,Z....
Многие ли помнят? :)

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

Сообщение Andrey Fedorov » 21.12.2006 (Чт) 17:48

zHackLeX писал(а):А потом как раз встаёт вопрос обработки событий, и, как вы говорите, события можно обработать на VBScript. Подскажите метод привязки (контрол-то добавляется в run-time...)


Да уже как-то рассказывал и пример давал - как раз на тему контролов динамически добавляемых в рантайме. Поищи. Тот пример надо лишь немного модифицировать, чтобы событию контрола можно было передавать функцию VBS - это не столь сложно...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Сообщение jangle » 21.12.2006 (Чт) 18:06

А потом как раз встаёт вопрос обработки событий, и, как вы говорите, события можно обработать на VBScript. Подскажите метод привязки (контрол-то добавляется в run-time...)



Можно привязать, очень гемморойно получается, но можно. Делал такое лет 5 назад. Писал свою систему программирования на базе VBScript. А тебе зачем все это нужно?

S397
Новичок
Новичок
 
Сообщения: 25
Зарегистрирован: 02.12.2005 (Пт) 13:31

Сообщение S397 » 21.12.2006 (Чт) 18:49

Грузишь предварительно написанный код vbScript в MSScriptControl
а при возникновении события на форме, напр Command1_Click вызываешь одноименную процедуру vbs и передаешь ей необходимые параметры.
В принципе все достаточно просто и доступно стандартными средствами vb6.

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

Сообщение Andrey Fedorov » 21.12.2006 (Чт) 20:39

Я тут набросал (правда на дюже скорую руку) примитивный примерчик, чтобы показать что все возможно...
Вложения
Sample.rar
(5.29 Кб) Скачиваний: 61
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

zHackLeX
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 283
Зарегистрирован: 23.10.2003 (Чт) 21:08

Сообщение zHackLeX » 23.12.2006 (Сб) 13:37

нормуль - а никто не знает - можно ли в скриптконтроле через GetRef привязать к событиям VB-контрола процедурку?
There is no knowledge that is not power...

X,C,A,B,C,Z,X,A,B,C,Z....
Многие ли помнят? :)


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

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

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

    TopList