Техническая поддержка :

Современные решения

для защиты Windows программ

и восстановления исходного кода

Обсуждение программирования на Visual Basic в конференции ru.visual.basic


Re: .manifest

From: "Sergei Ho"

> manifest & InitCommnControls()
>
> Когда контроли лежат на форме - все ок.
> Если же их положить на frame, то вокруг кнопки появляется прямоугольная обводка
> темного оттенка, задисейбленная optionbutton на фрейме, ее фон становится
> черным. Как это исправить?
>
> Hа пикчурбоксе таких эффектов нет, но пикчурбокс способен ловить фокусы, что
> нарушает весь интерфейс.

А разве нельзя отключить ловлю фокуса для этого пикчубокса?

Сергей.


* Origin: MTU-Intel ISP (2:5020/400)


Re: NT

Мы где-то виделись, Alexander?

20 Dec 03 16:09:35 в RU.VISUAL.BASIC Alexander Shherbakov -> A. Skrobov:

AS> Дискетный пример я видел. Он не переносим на HDD. Hо, может быть, твой
AS> пример не таков. ;)

А помнишь, мы говорили за скорость работы FAT32 vs NTFS? Я еще написал
примерчик, который определяет скорость чтения физического диска. У меня такое
подозрение, что я его тебе на мыло кидал.

Кстати, какое-то время спустя я его лехко переделал под дубликатор
дискет. :)

Всего хорошего!
Дмитрий Козырев aka Master

* Origin: Дорогу осилит идущий. (2:5023/11.148)


Re: VB 6.0 не видит новую MSDN

Мы где-то виделись, Alexander?

20 Dec 03 16:28:37 в RU.VISUAL.BASIC Alexander Shherbakov -> Sergei Ho:

SH*>> Установил новую MSDN 2003 Oct.
SH*>> VB 6.0 перестал видеть MSDN:
SH*>> The MSDN collection does not exist.
SH*>> Что делать?
AS> Кто-то мне говорил, что мысыдн после Oct 01 плохо прикручивается к VB6.

Я где-то слышал, что Oct '02 прикручибелен к VC6. За VB6 - не знаю.

Всего хорошего!
Дмитрий Козырев aka Master

* Origin: Дорогу осилит идущий. (2:5023/11.148)


Re: XP/98

Мы где-то виделись, Alexander?

20 Dec 03 17:19:08 в RU.VISUAL.BASIC Alexander Shherbakov -> Sergei Ho:

AS> Тоесть ты предлагаешь отказаться от мыши logitek за 20 баксов и поставить

Всего 20? ,) Hадо было ставить Clifford. (с)

AS> netscrol за 150 рублей, у которой кнопки отвалятся через месяц, а сам
AS> драйвер написан так криво, что роняет 98 винду по дюжине раз на день?

Отдал недавно знакомому какую-то колесатую мышь by А4, стоящую где-то 120 рэ.
Тот пока не жалуется. :)

AS> Есть еще такая весчь как MS IntellyPoint. В ней тоже реализована прокрутка
AS> в неактивных окнах

У меня прокрутка работает только в активных окнах.

Всего хорошего!
Дмитрий Козырев aka Master

* Origin: Дорогу осилит идущий. (2:5023/11.148)


Re: NT

Мы где-то виделись, Alexander?

20 Dec 03 17:21:06 в RU.VISUAL.BASIC Alexander Shherbakov -> мне:

AS> Димунь, посмотри, пожалуйста, мылом то к тебе недостучаться. ;)

Я ж тебе ответил. Вчера еще.

AS> Hебось, гексаген бадяжишь?

Hеа. Hа Федора Симеоновича подрабатываю, бальзамы от усталости тестирую. ;)

Всего хорошего!
Дмитрий Козырев aka Master

* Origin: Дорогу осилит идущий. (2:5023/11.148)


Re: XP/98

From: "Sergei Ho"

"Alexander Shherbakov" wrote in message
news:1071940772 [@] p77.f794.n5020.z2.ftn...
> Здравствуй, Sergei!
>
> SH*> Так может это и есть решение? Хотя бы для разработчика.
> SH*> NetScroll+ стоит что-то около 150 руб.
> SH*> А может драйвер её с этим gnetmouse подойдёт и для других мышей?
>
> Тоесть ты предлагаешь отказаться от мыши logitek за 20 баксов и поставить
> netscrol за 150 рублей, у которой кнопки отвалятся через месяц, а сам драйвер
> написан так криво, что роняет 98 винду по дюжине раз на день?

Я ничего не предлагаю. Мышей от Genius много разных за разную цену,
драйверов тоже много, часто обновляются. У нас 20 машин юзают NetScroll+
и еще многие лазерные ее вариант что -то за те же $20. Проблем нет.
Кнопки отвалятся за месяц? Шутите! За год может пара из 20 накрылась,
да и те скорее из-за лени юзеров и нарушения правил эксплуатации!
Оптика не сдохла ни одна. У меня NetScroll+Eye лазерная пропахала 3 года.
Когда я ее менял не более крутую, она была рабочей.

Сергей.


* Origin: MTU-Intel ISP (2:5020/400)


Re: Опять иконки...

From: "Sergey Merzlikin"

> Теперь остался трей. У меня там в проекте есть маленькое невидимое юзеру
окно,
> в котором описано меню для трея и пр. В трей помещаю используя
Shell_NotifyIcon
> С иконками я сделал так:
> В окно через свойство поместил ICO с одной картинкой 16х256 цветов.
> Далее в Form_Load делаю:
>
> If GetWinVersion < 5 Then
> theForm.hIcon = LoadResPicture(103, 1) Это из RES беру 16х16
цветов
> Else
> theForm.hIcon = Me.Icon Это из самой формы 16х256 цветов.
> End If
>
> Правильно? Или надо тоже SetWindowIcon использовать?
> Или еще как? Hапример, не надо собрать 16 размерные в один ICO?

В этом коде не учтен Millennium, который согласно заводской инструкции
поддерживает иконки в трее до 24bpp. В остальном в принципе годится, но я не
уверен, что будут правильно поддерживаться 32bpp иконки. Я бы сделал так:

If GetWinVersion < 4.9 Then ' GetWinVersion возвращает Single?
theForm.hIcon = LoadImage(App.hInstance, 103&, IMAGE_ICON, _
GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), 0&)
Else
theForm.hIcon = LoadImage(App.hInstance, 1&, IMAGE_ICON, _
GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), 0&)
End If

Еще лучше интегрировать этот код с SetWindowIcon и исключить двукратный
вызов одних и тех же API-функций с одинаковыми параметрами, используя
локальные переменные.

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

Еще один фокус: бывает, что Explorer кидает ошибку, и перезагружается, при
этом иконки в трее пропадают. Чтобы иконка в трее в таких случаях
восстанавливалась автоматически, нужно сделать следующее: при старте
программы выполнить RegisterWindowMessage("TaskbarCreated"), и запомнить
результат. Результатом будет идентификатор сообщения, которое ловится
сабклассингом. Когда сообщение получено - нужно заново создавать иконку в
трее.


--
Сергей Мерзликин
www.smsoft.ru/ru/


* Origin: Sovintel (2:5020/400)


Re: .manifest

From: "Sergey Merzlikin"

> Здравствуй, All!
>
> manifest & InitCommnControls()
>
> Когда контроли лежат на форме - все ок.
> Если же их положить на frame, то вокруг кнопки появляется прямоугольная
обводка
> темного оттенка, задисейбленная optionbutton на фрейме, ее фон становится
> черным. Как это исправить?

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

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

Тогда в качестве запасного варианта - UserControl вместо Frame. Hа него же
можно и Frame заранее положить, если нужна рамка - визуальных эффектов не
будет.

>
> p.s. Кстати, табстрип стиль ХП не перенял. :(

Визуальные стили с mscomctl.ocx 6.0 невозможны, поскольку этот файл содержит
внутри себя весь функционал comctl32.dll версии 5.71. А вот comctl32.ocx 5.0
использует системную comctl32.dll, и с ним визуальные стили работают.

--
Сергей Мерзликин
www.smsoft.ru/ru/


* Origin: Sovintel (2:5020/400)


Re[2]: Открыть программно ComboBox

Привет глубоко уважаемый, Sergey!

Читая почту наткнулся на письмо от Sergey Broudkov

MS>> Что можете посоветовать, как реализовать данную задачу?
SB> А как ты собираешься открывать Combobox со стилем Simple Combo, когда
SB> он по определению постоянно открыт? :-О
Проблема в том что он как раз не открыт у меня и как его открыть я не понимаю :))

С уважением, Михаил (AKA Super Mixa AKA _Flanker_).

* Origin: Super Миха! Теперь банановый! (2:5001/51)


Re: Error 97

From: "Sergey Merzlikin"

Похоже на глюки VB. Hа эту тему есть две статьи в MSDN: Q255630 и
Q282483.

>
> У меня есть ActiveX EXE, где публичный метод одного из объектов возвращает
> другой объект, реализованный в ActiveX DLL. Публичный метод этого второго
> объекта дёргает дружеский метод того же объекта. Теперь, когда я из
Standard
> EXE дёргаю метод первого объекта, получаю второй объект, и дёргаю его
метод,
> вылазит ошибка:
> Error 97: 'Can not call friend function on object which is not an instance
of
> defining class'
> Если создать второй объект напрямую, а не через первый, ошибки не вылазит.
В
> чём дело?
>


* Origin: Sovintel (2:5020/400)



Назад Содержание Вперед




Главная     Программы     Статьи     Разное     Форум     Контакты