Runtime/Designtime режим контрола

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

Runtime/Designtime режим контрола

Сообщение hclubmk » 29.12.2010 (Ср) 11:28

Создавая свой UC, можно определить свойство InvisibleAtRuntime. Далее, используя скомпилированный контрол (.ocx), среда VB прекрасно различает/задает режим работы контрола (не только этого UC, но и других. UС упомянул ради свойства InvisibleAtRuntime) - в режиме дизайна он видим, в режиме рантайм - соответственно - нет.
Существует ли возможность задать этот "режим поведения" для произвольного контрола в рантайме?
Научились ли Вы радоваться трудностям?

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

Re: Runtime/Designtime режим контрола

Сообщение Хакер » 29.12.2010 (Ср) 11:30

Опять непонятно.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

hclubmk
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 240
Зарегистрирован: 19.06.2009 (Пт) 14:23
Откуда: От-туда

Re: Runtime/Designtime режим контрола

Сообщение hclubmk » 29.12.2010 (Ср) 11:44

Есть произвольный контрол. В режиме разработки (дизайна) формы в IDE - он виден, и имеет определенный тип поведения . В режиме рантайма - нет (не виден), тип поведения, соответственно, меняется.
Вопрос:
1) С точки зрения готового контрола - он всегда находится в режиме "рантайм" (работаю) ?
2) Если п.1) - нет, существует ли возможность выбрать этот "тип поведения контрола" ?

переформулирую: каким образом среда VB IDE выбирает тип поведения контрола (например, Timer, но с другими - тоже самое), что в режиме дизайна он виден, в режиме выполнения программы - нет?
Научились ли Вы радоваться трудностям?

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

Re: Runtime/Designtime режим контрола

Сообщение Хакер » 29.12.2010 (Ср) 12:30

hclubmk писал(а):Есть произвольный контрол. В режиме разработки (дизайна) формы в IDE - он виден, и имеет определенный тип поведения . В режиме рантайма - нет (не виден), тип поведения, соответственно, меняется.

Почему в рантайме произвольный контрол — невиден?

В общем, ты имешь в виду UserControl.Aimbient.UserMode что-ли?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

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

Re: Runtime/Designtime режим контрола

Сообщение Antonariy » 29.12.2010 (Ср) 12:56

каким образом среда VB IDE выбирает тип поведения контрола
У нее нет выбора. При InvisibleAtRuntime=true контрол не создает окно.
Существует ли возможность задать этот "режим поведения" для произвольного контрола в рантайме?
Вот что по этому поводу пишет справка по свойству, которую следовало бы прочитать в первую очередь:
Before creating a control that is invisible at run time, consider creating an ordinary object provided by an in-process code component (ActiveX DLL) instead. Objects provided by in-process code components require fewer resources than controls, even invisible controls. The only reason to implement an invisible control is to take advantage of a feature that is only available to ActiveX controls.

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

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

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

Re: Runtime/Designtime режим контрола

Сообщение Хакер » 29.12.2010 (Ср) 13:01

Antonary, он пишет свою IDE, насколько я знаю. Так что твои заявления о ресурсах и преимуществах несколько неуместны.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

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

Re: Runtime/Designtime режим контрола

Сообщение Antonariy » 29.12.2010 (Ср) 13:06

Я не знал.
На VB пишет? Герой.
Я что-то слышал насчет того, что сделеть полноценную поддержку design-time на VB невозможно или очень сложно, это требует поддержки каких-то расово сишных интерфейсов.
Лучший способ понять что-то самому — объяснить это другому.

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

Re: Runtime/Designtime режим контрола

Сообщение Хакер » 29.12.2010 (Ср) 13:34

Antonariy писал(а):Я что-то слышал насчет того, что сделеть полноценную поддержку design-time на VB невозможно или очень сложно, это требует поддержки каких-то расово сишных интерфейсов.

Глупости :)
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

hclubmk
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 240
Зарегистрирован: 19.06.2009 (Пт) 14:23
Откуда: От-туда

Re: Runtime/Designtime режим контрола

Сообщение hclubmk » 29.12.2010 (Ср) 13:53

Antonariy писал(а):Герой
Фигасе :D , дайте орден!

Хакер писал(а):Почему в рантайме произвольный контрол — невиден?
частный случай частного контрола - к слову пришлось.
Хакер писал(а):В общем, ты имешь в виду UserControl.Aimbient.UserMode что-ли?

да, но применительно к любому контролу.
Научились ли Вы радоваться трудностям?

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

Re: Runtime/Designtime режим контрола

Сообщение Хакер » 29.12.2010 (Ср) 13:55

hclubmk писал(а):да, но применительно к любому контролу.

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

hclubmk
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 240
Зарегистрирован: 19.06.2009 (Пт) 14:23
Откуда: От-туда

Re: Runtime/Designtime режим контрола

Сообщение hclubmk » 29.12.2010 (Ср) 14:02

Любой контрол имеет доступ к этому свойству.

Тогда, каким образом я могу сказать произвольному (чужому) контролу на форме: "веди себя как в design-mode"?
Научились ли Вы радоваться трудностям?

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

Re: Runtime/Designtime режим контрола

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

Во-первых, тут дело не в одном контроле. Ещё и контейнер должен вести себя как IDE.
Но в целом это поведение определяется параметрами окружения (Ambient). Гугли, например, по QACONTAINER.dwAmbientFlags и QACONTAINER_USERMODE, по IOleControl::OnAmbientPropertyChange.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

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

Re: Runtime/Designtime режим контрола

Сообщение Antonariy » 30.12.2010 (Чт) 9:26

Хакер писал(а):
Antonariy писал(а):Я что-то слышал насчет того, что сделеть полноценную поддержку design-time на VB невозможно или очень сложно, это требует поддержки каких-то расово сишных интерфейсов.

Глупости :)
Точно, я все перепутал. Речь шла о контролах типа SSTab. Он в дизайне способен реагировать на действия пользователя, я интересовался, как это сделать.
Лучший способ понять что-то самому — объяснить это другому.

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

Re: Runtime/Designtime режим контрола

Сообщение NashRus » 30.12.2010 (Чт) 13:07

Antonariy писал(а): Он в дизайне способен реагировать на действия пользователя, я интересовался, как это сделать.


Может правильней спросить как такое не сделать? Они по умолчанию выполняются также в design-time.

hclubmk
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 240
Зарегистрирован: 19.06.2009 (Пт) 14:23
Откуда: От-туда

Re: Runtime/Designtime режим контрола

Сообщение hclubmk » 30.12.2010 (Чт) 14:58

NashRus писал(а):как такое не сделать

В смысле - принудительно запретить вообще какую-либо реакцию контрола? Наверно рекурсивно запретить все его дочерние окна.
Научились ли Вы радоваться трудностям?

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

Re: Runtime/Designtime режим контрола

Сообщение Хакер » 30.12.2010 (Чт) 15:30

hclubmk, ты почему не пишешь, получилось у тебя или нет?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

hclubmk
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 240
Зарегистрирован: 19.06.2009 (Пт) 14:23
Откуда: От-туда

Re: Runtime/Designtime режим контрола

Сообщение hclubmk » 30.12.2010 (Чт) 16:06

Хакер писал(а): ты почему не пишешь

Пока нечего писать.
Научились ли Вы радоваться трудностям?

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

Re: Runtime/Designtime режим контрола

Сообщение Antonariy » 30.12.2010 (Чт) 17:13

NashRus писал(а):
Antonariy писал(а): Он в дизайне способен реагировать на действия пользователя, я интересовался, как это сделать.


Может правильней спросить как такое не сделать? Они по умолчанию выполняются также в design-time.
Они это кто конкретно? В дизайн-тайме выполняются только события инициализации, propertybag и изменения размера. На клики не реагирует, например. Например, невозможно, например, передать такой клик встроенному контролу, например. Например, чтобы кнопка нажалась.
Лучший способ понять что-то самому — объяснить это другому.

hclubmk
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 240
Зарегистрирован: 19.06.2009 (Пт) 14:23
Откуда: От-туда

Re: Runtime/Designtime режим контрола

Сообщение hclubmk » 30.12.2010 (Чт) 21:16

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

Да ну? От конкретного контрола зависит (UIDead). SpreadSheet, как мне кажется, просто ShowGrabHandles добавляет, остальное - всё как и в рантайме (ну, по крайней мере, визуально).
Научились ли Вы радоваться трудностям?

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

Re: Runtime/Designtime режим контрола

Сообщение Antonariy » 31.12.2010 (Пт) 20:12

Я имел ввиду невозможно стандартными средствами. Но естественно не поручусь, потому что не проверял.
Лучший способ понять что-то самому — объяснить это другому.

hclubmk
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 240
Зарегистрирован: 19.06.2009 (Пт) 14:23
Откуда: От-туда

Re: Runtime/Designtime режим контрола

Сообщение hclubmk » 04.01.2011 (Вт) 10:28

Ничего толкового из поиска в гугле, не "нагуглилось".
Хакер, подскажи кудой идти.
Научились ли Вы радоваться трудностям?

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

Re: Runtime/Designtime режим контрола

Сообщение Хакер » 04.01.2011 (Вт) 10:29

Ну прочитай ты про интерфейс IQuickActivate. Про структуры, которые там передаются (QACONTAINER, QACONTROL). Про поля этих структур и их предназначение.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

hclubmk
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 240
Зарегистрирован: 19.06.2009 (Пт) 14:23
Откуда: От-туда

Re: Runtime/Designtime режим контрола

Сообщение hclubmk » 10.01.2011 (Пн) 13:52

tagQACONTAINER и tagQACONTROL: Variable uses Automation type not supported in Visual Basic. На этом всё заканчивается?
Научились ли Вы радоваться трудностям?

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

Re: Runtime/Designtime режим контрола

Сообщение Хакер » 10.01.2011 (Пн) 13:55

hclubmk писал(а):На этом всё заканчивается?

На этом всё начинается. Не нужно вталкивать насильно в VB типы, которые он заведомо переварить не моэет (вроде const int * volatile * const* * volatile const или каких-нибудь структур с юнионами). Описываешь структуры используя обычные типы для полей и вауля. В Эданмо-вской TLB-шке, насколько я помню, типы уже описаны правильно.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

hclubmk
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 240
Зарегистрирован: 19.06.2009 (Пт) 14:23
Откуда: От-туда

Re: Runtime/Designtime режим контрола

Сообщение hclubmk » 10.01.2011 (Пн) 14:02

Хакер писал(а):В Эданмо-вской TLB-шке, насколько я помню, типы уже описаны правильно

Где искать TLB с IQuickActivate? На его mvps-страничке не нашел.
Научились ли Вы радоваться трудностям?

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

Re: Runtime/Designtime режим контрола

Сообщение Хакер » 10.01.2011 (Пн) 14:04

  • Даже здесь где-то на форуме была (искать по постам tyomitch-а, плюс он её доделывал (дополнял) для каких-то своих нужд).
  • Написать свою. Это проще, чем искать, и объявление будут ровно такими, какие тебе нужны.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.


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

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

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

    TopList