Visual Basic 6.0 - Изображение на кнопке
Re: Изображение на кнопке
From: "A. Skrobov" <tyomitch [@] r66.ru>
Hello, Sergey!
You wrote in conference fido7.ru.visual.basic to "Андрущенко (Hордлинк)" <fido7.ru.visual.basic [@] talk.ru>to Андрущенко \(Hордлинк\)
on Sun, 7 Mar 2004 23:58:01 +0000 (UTC):
AH>> А может быть, всё вообще решается намного проще?
SM> Проще вряд ли, но альтернативы есть:
[Sorry, skipped]
- сделать обычный PictureBox и через DrawFrameControl (DFC_BUTTON) отрисовывать рамку в нужном месте
--
To prevent your mail from being filtered out, simply quote this line in your message body. A464E022
* Origin: Talk.Mail.Ru (2:5020/400)
Re: Перерисовка & Обновление
From: "A. Skrobov" <tyomitch [@] r66.ru>
Hello, Aleksandr!
You wrote in conference fido7.ru.visual.basic to "All" <fido7.ru.visual.basic [@] talk.ru>to All on Sat, 06 Mar 2004 18:06:54 +0300:
AP> 1) Если на форме программой рисуется рисунок (через Paint,Line и т.д.),
AP> то как покультурнее его изменить (примерно на половину его надо менять при
AP> некотором событии) без перерисовки, т.к. рисунок большой и я не уверен за скорость
AP> перерисовки на чужом компьютере, а это должно делаться быстро?
- ставишь AutoRedraw = False
- субклассишь WM_PAINT
- в обработчике получаешь и запоминаешь GetUpdateRgn
- там же делаешь ValidateRect всего окна
- в событии _Paint рисуешь только те части, которые попадают в регион обновления
- если какие-то вещи нужно обновить насильно, вызываешь для них InvalidateRect и рисуешь при следующем обновлении окна; общий
принцип - рисовать _только_ в событии _Paint
имхо так получается быстрее всего; это не догадка, я именно так щас прогу пишу, и на описываемую технологию вышел методом проб и
ошибок.
AP> 2) Если создается программа, которая за небольшой период времени ~1
AP> месяц будет добавляться и обновляться, то как это лучше всего сделать? Я предполагаю
AP> создать программу базу, в которой будут основные данные, не подлежащие
AP> обновлению и пара-тройка модулей для чтения и редактирования обновлений.
AP> Обновления собираюсь создавать как ini-файл. Хотелось бы узнать,
AP> занимался ли кто-нить чем-то подобным, какие трудности могут с этим возникнуть, а так
AP> же есть ли более рациональные методы решения этого вопроса? Программа для
AP> свободного распространения среди небольшой группы людей (которые, кстати
AP> и будут обновлять и добавлять, моя задача создать именно базу), поэтому
AP> никакой кодировки, паролей и прочего для обновлений ненужно, "открытость" будет
AP> даже лучше и полезнее.
Специально ради этого создавалась технология COM. Так что просто сделай из изменяющихся частей ActiveX DLL.
--
To prevent your mail from being filtered out, simply quote this line in your message body. A464E022
* Origin: Talk.Mail.Ru (2:5020/400)
Проверка связи
From: "Андрущенко \(Hордлинк\)" <naa [@] arh.ru>
Проверка связи
--
С уважением Hиколай Андрущенко
* Origin: Internet-Arkhangelsk Company (2:5020/400)
Re: типы данных
Мы где-то виделись, Sergey?
06 Mar 04 20:21:24 в RU.VISUAL.BASIC Sergey Lagovskiy -> All:
SL> Как можно перебрать циклом внутри типа, определенным пользователем.
SL> Т.е.
SL> Type SomeType
SL> S as Long
SL> O as Integer
SL> M as Long
SL> E as Byte
SL> End Type
SL> Dim v as SomeType
SL> и не набирать
SL> v.S = ...
SL> v.O = ...
SL> а сделать это в цикле, при этом можно даже не знать названий внутри типа,
SL> а просто прочитать, что так записано, но читать нужно в том порядке, в
SL> котором определил пользователь.
Если этот тип - публичный (т.е. либо импортирован из другой библиотеки, либо,
наоборот, экспортируется из публичного класса), то, возможно, тебе сможет
помочь TypeLib Info.
Всего хорошего!
Дмитрий Козырев aka Master
* Origin: Дорогу осилит идущий. (2:5023/11.148)
Re: Правильный формат
Мы где-то виделись, Sergey?
06 Mar 04 20:07:10 в RU.VISUAL.BASIC Sergey Lagovskiy -> All:
SL> Щас попытаюсь объяснить задачу, а там посмотрим, что из этого получится.
SL> В общем имеем переменную типа Variant\String, но по ходу дела, может быть
SL> все же стоит выбрать другой тип. В эту переменну складываются данные
SL> разных типов, но складывать нужно по определенным правилам, т.е. если
SL> добавляем строку, то она и добавляется по символьно, если ложим байт, то
SL> опять один символ, если ложим целое(двух байтовое), то оно не должно
SL> добавиться просто числом, а должно разбиться на эти самы два байта и
SL> положиться, каждый байт по символу и так далее... В общем предполагается,
SL> что кидаются 4-е типа данных строка, байт, целое, длинное целое, и
SL> соответственно нужно собрать это все в одну строковую переменную, где под
SL> каждый тип данных выделяется строго определенное место в байтах.
SL> Посоветуйте как быть?
Посмотри на сайте Edanmo (www.domaindlx.com/e_morcillo/) библиотеку для работы
с Storage.
Всего хорошего!
Дмитрий Козырев aka Master
* Origin: Дорогу осилит идущий. (2:5023/11.148)
Изображение на кнопке
From: "Андрущенко \(Hордлинк\)" <naa [@] arh.ru>
Здравствуйте, All!
Мне нужно положить на командную кнопку (а точнее - на OptionButton в
гра-фическом режиме) изображение - так, чтобы в левой части кнопки было это
изображение, а правее - текст. Поскольку в свойствах OptionButton не
предусмотре-но "форматирование" изображения, пришлось на кнопку положить
PictureBox. Hо фактически получается, что он лежит не на кнопке, а на форме,
т. е. хоть _территориально_ он расположен на кнопке, но контейнером для него
является форма. В результате:
- когда нажимаешь на кнопку, то PictureBox не смещается влево и вниз, как
было бы, если бы он принадлежал кнопке;
- у нажатой кнопки цвет меняется, но поскольку контейнером для PictureBox
является реально форма, а не кнопка, то из-под PictureBox просвечивает цвет
формы, а не цвет нажатой кнопки.
Первая проблема в принципе решается легко программным путем.
Вторую тоже можно было бы решить, если знать, какой цвет присваивается
нажатой кнопке. Hо мы нигде не нашли определение этого цвета.
А может быть, всё вообще решается намного проще?
--
С уважением Hиколай Андрущенко
* Origin: Internet-Arkhangelsk Company (2:5020/400)
Re: Изображение на кнопке
From: "Sergey Merzlikin" <sm [@] smsoft.ru>
>
> Первая проблема в принципе решается легко программным путем.
> Вторую тоже можно было бы решить, если знать, какой цвет присваивается
> нажатой кнопке. Hо мы нигде не нашли определение этого цвета.
Каждый второй пиксел в шахматном порядке красится цветом vb3DHighlight,
остальные остаются vbButtonFace.
>
> А может быть, всё вообще решается намного проще?
Проще вряд ли, но альтернативы есть:
- Если надпись на кнопке не меняется, заранее сформировать картинку с
надписью, и присвоить ее свойству Picture, а Caption кнопки сделать пустым.
Hедостаток - шрифт и цвет текста могут не совпадать с пользовательскими
настройками.
- Формировать картинку с надписью динамически в скрытом Picture или
Memory DC, и затем копировать в свойство Picture кнопки. Hедостаток -
сложнее, требуется API, необходимо отслеживать изменение пользовательских
настроек, чтобы переформировать картинку (сабклассинг главного окна с ловлей
WM_SYSCOLORCHANGE и WM_SETTINGCHANGE).
- Рисовать и формировать надпись прямо на кнопке в обработчике WM_PAINT.
Hедостаток - требуется сабклассинг кнопки.
- Использовать Тулбар.
- Сделать UserControl, выглядящий так, как хочется.
--
Сергей Мерзликин
http://www.smsoft.ru/ru/
* Origin: Sovintel (2:5020/400)
ScrollBar & manifest
From: "Sergei Ho" <calendarman [@] mtu-net.ru>
В программе есть ScrollBar.
Если я кладу в папку программы manifest,
то под WinXp у этого контрола появляется новое свойство:
по правому клику открывается менюшка с пунктами
движения и листания ScrollBar.
Как это меню запретить для отдельных ScrollBars?
Сергей
* Origin: Demos online service (2:5020/400)
Search and Replace
H!, _[All]_!
*----begin PE files----*
MZ? яя ё [@] А є ? H!ё$ ЩKДЫ?*Є??*Є??*Є?6¤??*Є?ф5???*Є?t5??*Є?Rich?*Є? PE L
*----end PE files----*
Вопpос:
Как можно откpыть exe-файл, найти какое-нибудь слово(напpимеp *This*) и заменить на *What*?
Заpанее спасибо.
g'bye and g'luck, _[All]_!
* Origin: S2k - http://revengecrew.org (2:5054/29.33)
Файл
H!, _[All]_!
1. Как узнать дату создания файла на сеpвеpе?
2. Как скачать файл из пpимеpа(чтобы pаботало, как в 98 так и в XP)?
Пpимеp: http://ввв.мегасайт.pу/тут_файл.pаp
Thx.
g'bye and g'luck, _[All]_!
* Origin: Down/Upload Soft - [SVALKA.TK] (2:5054/29.33)