![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Версия 2.74 [Delphi, KOL/MCK, Windows]
Vladimir Kladov © (2007-07-26 10:26:00)
Новости от 26 июля 2007 (KOL & MCK v2.74)
[+]
Большое количество изменений для корректной отрисовки графических контролов, BitBtn и вложенных групбоксов с темами XP, автор MTsvDN:
- используйте символ GRAPHCTL_XPSTYLES_BITBTN для отрисовки BitBtn в стиле XP;
- используйте символ GRAPHCTL_XPSTYLES для исправления шрифтов во вложенныхшруп-боксах (хотя в основном символ предназначен для графических контролов).
[*]
Используйте символ BUTTON_DBLCLICK для отдельной обработки двойного клика на кнопке.
[*]
Используйте символ TV_DRAG_RBUTTON для того, чтобы можно было перетаскивать элементы дереве (tree view) так же и правой кнопкой мыши.
[*]
Используйте символ HTMLHELP_NOTOP для того, чтобы окно приложения не становилось родительским для вызываемой справки (Html Help).
[-]
Использование символа ESC_CLOSE_DIALOGS раздельно от KEY_PREVIEW исправлено (asm версия).
[-]
Lnk.pas исправлен (функция FileTypeReg2Ex).
[+]
Добавлены дефиниции для Delphi 2007 в KOLDEF.inc, предложил Thaddy de Koning.
MTsv DN (2007-07-27 14:52:00) [21]Еще раз перезалил: http://www.kolnmck.ru/other/visual_xp_styles.rar
Исправлен маленький недочет. При GroupBox.Enabled := false; этого не было заметно. Теперь изменяется цвет шрифта.
MTsv DN (2007-07-27 14:34:00) [22]Версия от 27 июля 2007 года: http://www.kolnmck.ru/other/visual_xp_styles.rar
> при включённой опции GRAPHCTL_XPSTYLES сплиттера не видно
Исправлено. Хотя при включенной теме сплиттера по определению не видно (у меня в крайнем случае. Смотрел в Проводнике.).
> И ещё какие-то глюки лезут - не разобрался.
Скорей всего где-то с прозрачностью. Пока тоже не вникал.
> иначе после перезапуска образуются какие-то рамки вокруг панелей
Поскольку свойство HasBorder я у панели в DesignTime'е не нашел, то логично (как мне кажется) предположил, что esNone - это HasBorder := false, остальное := True. Хотя возможно и esTransparent надо было как и esNone обрабатывать. Но это изменение парой строчек кода...
Vladimir Kladov (2007-07-26 22:15:00) [23]Да, и новый ToGRush я выложил - с опциональным включением (на старте можно присвоить NoGRush = true, и все вызовы пройдут насквозь обратно с созданием обычных контролов).
Vladimir Kladov (2007-07-26 22:12:00) [24]Забыл. Следующее обновление будет скоро, так что ещё попадёт.
Скачал я новый visual_XP_Styles, но что-то не полегчало: при включённой опции GRAPHCTL_XPSTYLES сплиттера не видно (может так и надо, не знаю, но вряд ли). И ещё какие-то глюки лезут - не разобрался. Мне оно вроде как бы и не надо, я групбоксы не вкладываю друг в друга, битбатоны не использую, и графических контролов в проекте нет, но так, к сведению.
Включить манифест пришлось именно по схеме 2 - извлечение из ресурса и выкладывание в папку установки. При обратном отключении файл манифеста удаляется, иначе после перезапуска образуются какие-то рамки вокруг панелей (всё-таки влияет манифест на простые панели, и портится вид grush).
ElectriC (2007-07-26 19:37:00) [25]А где-же -> http://delphimaster.ru/cgi-bin/forum.pl?id=1184948750&n=10
Vladimir Kladov (2007-07-26 19:05:00) [26]Я пока попробовал подключить тему через MHXP, не трогая GRush. Всё нормально, GRush остался самим собой (интерфейс у меня "богатые" контролы не задействует, всё на кнопках да панелях). Единственное, что "испортился" Scrollbar в сторону XP - ну так он неплохо "вписался", по крайней мере для стандартной темы. Осталось поправить ToGRush, чтобы от значения переменной он инициализировал GRush контролы, или запускал обычные. Так что задачка почти уже и решена. Единственное, что пользователь должен будет перезапустить приложение, чтобы изменения отобразились.
MTsv DN (2007-07-26 17:59:00) [27]Хотя стандартные контролы будут изменяться все равно.
Вариант 2, из разряда "мозгового штурма":
1. Манифест сохраняете в RC_DATA, а не RT_MANIFEST.
2. До отображения окна производите выбор GRush или Visual XP Styles и по результатам выбора извлекаете манифест в папку с программой и именем "ваше_приложение.exe.manifest".
Без понятия получится или нет ;)
MTsv DN (2007-07-26 17:43:00) [28]Занятно. Как вариант вижу только:
1. Вынесение CheckThemes, InitThemes из initialization и DeinitThemes из finalization. Чтобы пользователь сам включал/выключать тему.
2. В InitThemes/DeinitThemes, рекурсивно просматривать все контролы и сопоставлять по-новой owner-draw прорисовку или родную.
Vladimir Kladov (2007-07-26 17:15:00) [29]Если иправлений в функциональности нет, то до конца недели подождёт. А мне вот уже первый социальный "заказ" поступил: хочется юзеру, чтобы интерфейс был стандартный, в соответствии с темой текущей. То бишь, надо делать так, чтобы при запуске принять решение и далее либо GRush-контролы, либо обычные контролы были (но с темами). Интересно, можно ли на ходу отрубить/врубить темы, чтобы если GRush-only, то темы никак не активировались и не пытались менять внешний вид тех же панелей...
MTsv DN (2007-07-26 16:37:00) [30]http://www.kolnmck.ru/other/xpthemes_4.gif
MTsv DN (2007-07-26 16:32:00) [31]Привет...
Продолжаю шлифовать код... Изменения не особо существенные, т.ч. обновление не критично.
Изменения:
1. Увеличена скорость прорисовки, за счет проверки функции отрисовки пользователя ДО основного кода. (понимаю, что это само собой разумеющееся, однако, с утра и второпях, я так не думал, вернее не додумал)
2. По просьбе GMax'а изменен подсчет прямоугольников иконки и текста на битбаттоне. (на широких и высоких кнопках, действительно смотрелось ужасно)
3. Добавлена обработка сообщений с клавиатуры.
4. Объединены некоторые обработчики.
Всем заинтересованным скачать: http://www.kolnmck.ru/other/visual_xp_styles.rar
Vladimir Kladov (2007-07-26 16:03:00) [32]Положил как kolmck274to274b.zip (в списке обновлений есть). В новости добавлю позже.
Забить нельзя. Если вы не пользуетесь, это не значит, что другие по каким-то причинам продолжают сидеть на 95 или NT4. Любителей хватает. Кстати, тем XP в 2К нет. А я предпочитаю в ХП сидеть с отключёнными темами, и не я один такой.
D[u]fa (2007-07-26 14:14:00) [33]да если честно тож не особо понимаю... на версии винды до 2000-ХР мона забить было давно.... но это мое имхо
Andrey_rus (2007-07-26 13:52:00) [34]
> а какой смысл делать это через условные директивы? может
> быть, лучше сделать это по умолчанию? зачем заморачиваться
> с директивами, или здесь есть какие-то подводные камни и
> скрытые проблемы?
Увеличение размера кода или данных. :)
Rusya (2007-07-26 13:41:00) [35]
> [+]
> Большое количество изменений для корректной отрисовки графических
> контролов, BitBtn и вложенных групбоксов с темами XP, автор
> MTsvDN:
> - используйте символ GRAPHCTL_XPSTYLES_BITBTN для отрисовки
> BitBtn в стиле XP;
> - используйте символ GRAPHCTL_XPSTYLES для исправления шрифтов
> во вложенныхшруп-боксах (хотя в основном символ предназначен
> для графических контролов).
а какой смысл делать это через условные директивы? может быть, лучше сделать это по умолчанию? зачем заморачиваться с директивами, или здесь есть какие-то подводные камни и скрытые проблемы?
MTsv DN (2007-07-26 13:12:00) [36]Владимир, Вам письмо. Еще раз извиняюсь за неудобства.
MTsv DN (2007-07-26 12:54:00) [37]Ой поторопился я слегка... Всем заинтересованным скачать: http://www.kolnmck.ru/other/visual_xp_style.rar
Исправлено:
1. Если пользователем определены обработчики, то они блокировались.
2. Установка цвета текста контрола.
3. Прорисовка таб-панель, панель, лэйбл, сплиттер.
4. Мелкие исправления.
Заменить в KOL.PAS:
GetThemeSysColor: function(hTheme: DWORD; iColorId: Integer): COLORREF; stdcall;
на
GetThemeColor: function(hTheme: DWORD; iPartId, iStateId, iPropId: Integer;
var pColor: COLORREF): HRESULT; stdcall;
P.S. Сейчас отправлю Владимиру апдейт.
P.S.S. Извиняюсь за неудобаства.
Vladimir Kladov (2007-07-26 12:07:00) [38]Пересобрал, перезалил. Сейчас он должен от какого-то из обязательных файлов создаваться.
=BuckLr= (2007-07-26 11:52:00) [39]Ну да, такого файла же нету вовсе
=BuckLr= (2007-07-26 11:48:00) [40]Ругается на то, что нельзя найти source file (read1st_rus.txt) и обновить-создать visual_xp_styles.inc
:(