Форум: "KOL";
Текущий архив: 2008.03.16;
Скачать: [xml.tar.bz2];
ВнизВерсия 2.74 Найти похожие ветки
← →
Vladimir Kladov (2007-07-26 10:26) [0]
Новости от 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.
← →
=BuckLr= (2007-07-26 11:48) [1]Ругается на то, что нельзя найти source file (read1st_rus.txt) и обновить-создать visual_xp_styles.inc
:(
← →
=BuckLr= (2007-07-26 11:52) [2]Ну да, такого файла же нету вовсе
← →
Vladimir Kladov (2007-07-26 12:07) [3]Пересобрал, перезалил. Сейчас он должен от какого-то из обязательных файлов создаваться.
← →
MTsv DN © (2007-07-26 12:54) [4]Ой поторопился я слегка... Всем заинтересованным скачать: 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. Извиняюсь за неудобаства.
← →
MTsv DN © (2007-07-26 13:12) [5]Владимир, Вам письмо. Еще раз извиняюсь за неудобства.
← →
Rusya (2007-07-26 13:41) [6]
> [+]
> Большое количество изменений для корректной отрисовки графических
> контролов, BitBtn и вложенных групбоксов с темами XP, автор
> MTsvDN:
> - используйте символ GRAPHCTL_XPSTYLES_BITBTN для отрисовки
> BitBtn в стиле XP;
> - используйте символ GRAPHCTL_XPSTYLES для исправления шрифтов
> во вложенныхшруп-боксах (хотя в основном символ предназначен
> для графических контролов).
а какой смысл делать это через условные директивы? может быть, лучше сделать это по умолчанию? зачем заморачиваться с директивами, или здесь есть какие-то подводные камни и скрытые проблемы?
← →
Andrey_rus © (2007-07-26 13:52) [7]
> а какой смысл делать это через условные директивы? может
> быть, лучше сделать это по умолчанию? зачем заморачиваться
> с директивами, или здесь есть какие-то подводные камни и
> скрытые проблемы?
Увеличение размера кода или данных. :)
← →
D[u]fa © (2007-07-26 14:14) [8]да если честно тож не особо понимаю... на версии винды до 2000-ХР мона забить было давно.... но это мое имхо
← →
Vladimir Kladov (2007-07-26 16:03) [9]Положил как kolmck274to274b.zip (в списке обновлений есть). В новости добавлю позже.
Забить нельзя. Если вы не пользуетесь, это не значит, что другие по каким-то причинам продолжают сидеть на 95 или NT4. Любителей хватает. Кстати, тем XP в 2К нет. А я предпочитаю в ХП сидеть с отключёнными темами, и не я один такой.
← →
MTsv DN © (2007-07-26 16:32) [10]Привет...
Продолжаю шлифовать код... Изменения не особо существенные, т.ч. обновление не критично.
Изменения:
1. Увеличена скорость прорисовки, за счет проверки функции отрисовки пользователя ДО основного кода. (понимаю, что это само собой разумеющееся, однако, с утра и второпях, я так не думал, вернее не додумал)
2. По просьбе GMax"а изменен подсчет прямоугольников иконки и текста на битбаттоне. (на широких и высоких кнопках, действительно смотрелось ужасно)
3. Добавлена обработка сообщений с клавиатуры.
4. Объединены некоторые обработчики.
Всем заинтересованным скачать: http://www.kolnmck.ru/other/visual_xp_styles.rar
← →
MTsv DN © (2007-07-26 16:37) [11]http://www.kolnmck.ru/other/xpthemes_4.gif
← →
Vladimir Kladov (2007-07-26 17:15) [12]Если иправлений в функциональности нет, то до конца недели подождёт. А мне вот уже первый социальный "заказ" поступил: хочется юзеру, чтобы интерфейс был стандартный, в соответствии с темой текущей. То бишь, надо делать так, чтобы при запуске принять решение и далее либо GRush-контролы, либо обычные контролы были (но с темами). Интересно, можно ли на ходу отрубить/врубить темы, чтобы если GRush-only, то темы никак не активировались и не пытались менять внешний вид тех же панелей...
← →
MTsv DN © (2007-07-26 17:43) [13]Занятно. Как вариант вижу только:
1. Вынесение CheckThemes, InitThemes из initialization и DeinitThemes из finalization. Чтобы пользователь сам включал/выключать тему.
2. В InitThemes/DeinitThemes, рекурсивно просматривать все контролы и сопоставлять по-новой owner-draw прорисовку или родную.
← →
MTsv DN © (2007-07-26 17:59) [14]Хотя стандартные контролы будут изменяться все равно.
Вариант 2, из разряда "мозгового штурма":
1. Манифест сохраняете в RC_DATA, а не RT_MANIFEST.
2. До отображения окна производите выбор GRush или Visual XP Styles и по результатам выбора извлекаете манифест в папку с программой и именем "ваше_приложение.exe.manifest".
Без понятия получится или нет ;)
← →
Vladimir Kladov (2007-07-26 19:05) [15]Я пока попробовал подключить тему через MHXP, не трогая GRush. Всё нормально, GRush остался самим собой (интерфейс у меня "богатые" контролы не задействует, всё на кнопках да панелях). Единственное, что "испортился" Scrollbar в сторону XP - ну так он неплохо "вписался", по крайней мере для стандартной темы. Осталось поправить ToGRush, чтобы от значения переменной он инициализировал GRush контролы, или запускал обычные. Так что задачка почти уже и решена. Единственное, что пользователь должен будет перезапустить приложение, чтобы изменения отобразились.
← →
ElectriC © (2007-07-26 19:37) [16]А где-же -> http://delphimaster.net/view/11-1184948750/
← →
Vladimir Kladov (2007-07-26 22:12) [17]Забыл. Следующее обновление будет скоро, так что ещё попадёт.
Скачал я новый visual_XP_Styles, но что-то не полегчало: при включённой опции GRAPHCTL_XPSTYLES сплиттера не видно (может так и надо, не знаю, но вряд ли). И ещё какие-то глюки лезут - не разобрался. Мне оно вроде как бы и не надо, я групбоксы не вкладываю друг в друга, битбатоны не использую, и графических контролов в проекте нет, но так, к сведению.
Включить манифест пришлось именно по схеме 2 - извлечение из ресурса и выкладывание в папку установки. При обратном отключении файл манифеста удаляется, иначе после перезапуска образуются какие-то рамки вокруг панелей (всё-таки влияет манифест на простые панели, и портится вид grush).
← →
Vladimir Kladov (2007-07-26 22:15) [18]Да, и новый ToGRush я выложил - с опциональным включением (на старте можно присвоить NoGRush = true, и все вызовы пройдут насквозь обратно с созданием обычных контролов).
← →
MTsv DN © (2007-07-27 14:34) [19]Версия от 27 июля 2007 года: http://www.kolnmck.ru/other/visual_xp_styles.rar
> при включённой опции GRAPHCTL_XPSTYLES сплиттера не видно
Исправлено. Хотя при включенной теме сплиттера по определению не видно (у меня в крайнем случае. Смотрел в Проводнике.).
> И ещё какие-то глюки лезут - не разобрался.
Скорей всего где-то с прозрачностью. Пока тоже не вникал.
> иначе после перезапуска образуются какие-то рамки вокруг панелей
Поскольку свойство HasBorder я у панели в DesignTime"е не нашел, то логично (как мне кажется) предположил, что esNone - это HasBorder := false, остальное := True. Хотя возможно и esTransparent надо было как и esNone обрабатывать. Но это изменение парой строчек кода...
← →
MTsv DN © (2007-07-27 14:52) [20]Еще раз перезалил: http://www.kolnmck.ru/other/visual_xp_styles.rar
Исправлен маленький недочет. При GroupBox.Enabled := false; этого не было заметно. Теперь изменяется цвет шрифта.
← →
MTsv DN © (2007-07-27 15:02) [21]
>> иначе после перезапуска образуются какие-то рамки вокруг панелей
> Поскольку свойство HasBorder я у панели в DesignTime"е не нашел, то логично (как мне кажется) предположил, что esNone - это HasBorder := false, остальное := True. Хотя возможно и esTransparent надо было как и esNone обрабатывать. Но это изменение парой строчек кода...
Забыл упомянуть, что работает к сожалению, только в PAS_VERSION, т.к. в ASM:MOV [EAX].TControl.fEdgeStyle, edgeStyle
не срабатывает...
← →
MTsv DN © (2007-07-27 15:31) [22]> Забыл упомянуть, что работает к сожалению, только в PAS_VERSION, т.к. в ASM:
MOV [EAX].TControl.fEdgeStyle, edgeStyle
не срабатывает...
Чуть изменил код. Хотя в ASM"е я не силен, но теперь все работает:
esNone - без бордера
остальные с бордером.
← →
Дмитрий К © (2007-07-27 15:45) [23]Темы Windows отключены. Форма, TabControl. GRAPHCTL_XPSTYLES. Программа падает при запуске.
← →
MTsv DN © (2007-07-27 15:54) [24]> Темы Windows отключены. Форма, TabControl. GRAPHCTL_XPSTYLES.
> Программа падает при запуске.
Знаю, заметил вчера, когда Владимир включать/отключать темы делал. Уже подправил: UPD-файл ушел Владимиру.
← →
=BuckLr= (2007-07-27 16:03) [25]Ребята, я что-то не пойму. Вот подключил манифест, а битбатон как был в стиле 9x, так и остался. Что вы с ним делаете, что он выглядит как надо?
← →
MTsv DN © (2007-07-27 16:07) [26]> Ребята, я что-то не пойму. Вот подключил манифест, а битбатон
> как был в стиле 9x, так и остался. Что вы с ним делаете,
> что он выглядит как надо?
Директиву GRAPHCTL_XPSTYLES подключили???
2 Владимир Кладов
Вам письмо (см. "Версия 2").
← →
Vladimir Kladov (2007-07-27 16:13) [27]нету! шлите на vk@, на zoomer@ не работает.
← →
MTsv DN © (2007-07-27 19:58) [28]> нету! шлите на vk@, на zoomer@ не работает.
Щас "фишку" с автореакцией на смену тем прикручу и вышлю... Там еще "косячок" один со сплеттером обнаружился, уже исправил...у себя.
← →
=BuckLr= (2007-07-27 21:09) [29]
> Директиву GRAPHCTL_XPSTYLES подключили???
Ну да. Изменений не вижу. Может, манифест не тот? У меня KOLXPMan
← →
=BuckLr= (2007-07-27 21:24) [30]
> Ну да. Изменений не вижу
Отбой тревоги. Манифест не подключался :)
← →
MTsv DN © (2007-07-27 22:08) [31]> Отбой тревоги. Манифест не подключался :)
8)
> нету! шлите на vk@, на zoomer@ не работает.
Версия 3 ушла на vk@
← →
Vladimir Kladov (2007-07-27 22:30) [32]Пока нету. адно, до утра поди дойдёт. А то у нас уже 2й час ночи.
← →
Vladimir Kladov (2007-07-28 11:46) [33]что-то нету. Еще раз пошлите.
← →
MTsv DN © (2007-07-28 16:16) [34]> что-то нету. Еще раз пошлите.
Владимир, скачайте отсюда, чтобы зря время не терять: http://www.kolnmck.ru/other/kol274b+_v4.rar
Версия 2.
* Исправлена прорисовка табов при откл. темах и вкл. директиве условной компиляции.
Версия 3.
* Исправлена прорисовка панелей при откл. темах и вкл. директиве условной компиляции.
* Добавлена реакция на смену тем, без перезапуска приложения
* Исправлена прорисовка сплиттера
Версия 4. (Только закончил)
* 100% изменена прорисовка панелей с учетом автореакцией на смену тем.
P.S. В каждой версии что-то изменялось в прорисовке (например, установка цвета шрифтов, прорисовка отключенных контроллов и т.д.)...
P.P.S. Обновление от версии KOL 2.74b
← →
MTsv DN © (2007-07-28 16:18) [35]P.P.P.S. Имя visual_xp_style.inc заменено на visual_xp_styles.inc
← →
Vladimir Kladov (2007-07-28 19:44) [36]Версия 2.75
Новости о т28 июля 2007 (KOL & MCK v2.75)
[*] Некоторые изменения для символа GRAPHCTL_XPSTYLES, автор MTsvDN:
- GRAPHCTL_XPSTYLES_BITBTN отменён (используется общий символ
GRAPHCTL_XPSTYLES);
- некоторые исправления для splitter, panel;
- отслеживается изменение темы.
[-] Изменения в MCK для исправления бага темы Vista Aero с добавлением
8 пикселей справа и снизу окна со стилем границы thick (если он
устанавливается во время выполнения, уже после создания окна). Для
KOL, такая граница используется в формах с CanResize=false.
Примечание: Исправляются только формы, с CanResize=false изначально, а
не те, для которых этот флаг устанавливается в run-time. Автор: Юрий
Сидоров.
[-] С новым символом MODAL_ACTIVATE_FIX переключение обратно на
приложение с активной модальной формой, передвигает на передний план
все видимые формы приложения (поверх окон других приложений, за
исключением тех, что "поверх всех окон").
[-] Когда символ NOT_FIX_MODAL не определён, это исправляет клик на
любой форме неактивного KOL-приложения, но это исправление не работало
правильно в случае вложенных модальных вызовов. Новое исправление
действует и для этого случая.
[-] Исправлено использование символа NEW_MODAL (требуется для
ShowModalParented, но с этим сиволом не компилировалась ASM-версия).
[*] ShowQuestionEx учитывает значение переменной NoGRush когда
определены символы TOGRUSH_OPTIONAL и USE_GRUSH). Если NoGRush = TRUE,
используются стандартные цвета и расположения контролов, несмотря на
то, что определён в проекте символ USE_GRUSH. Это полезно для создания
дуальных интерфейсов, когда опционально может использоваться
GRush-подобный или стандартный стиль, в одном приложении.
И у меня просьба к MTsvDN: чтобы мне еще раз, уже в третий не пришлось чистить код от Hints & Warnings (а на этот раз и от бага в асм-коде), слить visual_xp_styles из обновления со своей версией.
← →
Danger © (2007-07-28 21:54) [37]Исправьте, пожалуйста, код генерации MCK для формы:
{$IFDEF KOL_MCK}
{$I MCKfakeClasses.inc}
{$IFDEF KOLCLASSES} {$I Form1class.inc} {$ELSE OBJECTS} PForm1 = ^TForm1; {$ENDIF CLASSES/OBJECTS}
{$IFDEF KOLCLASSES}{$I TForm1.inc}{$ELSE} TForm1 = object(TObj) {$ENDIF}
Form: PControl;
{$ELSE not_KOL_MCK}
TForm1 = class(TForm)
{$ENDIF KOL_MCK}
выделенное должно быть, наверное {$I TForm1class.inc}. Вообще, в обычных проектах несущественно, но при использовании препроцессоров возникают проблемы (ругается на отсутствующий файл).
И еще: исправьте в файле MirrorKOLPackageD4.dpk:mckAccEditorD4 in "mckAccEditorD4.pas",
на такой вариант, общий для всех версий:mckAccEditor in "mckAccEditor.pas",
Я уже писал об этом раньше, но никакой реакции не было.
← →
Vladimir Kladov (2007-07-29 20:41) [38]Я учёл оба пункта, но если первый будет с обновлением, то второй надо учесть при сборке полной версии. Надо просто удалить строчку c mckAccEditor4, строчка с mckAccEditor присутствует уже.
← →
GMax (2007-08-02 01:40) [39]что-то я уже подзабыл.
а в чем глубокий тайный смысл дублирования
KOLString = WideString;
KOL_String = type WideString;
а то где-то одно используется, где-то другое. и какое правильное ?
← →
Vladimir Kladov (2007-08-03 09:12) [40]Правильно оба, но второе менее совместимо по параметрам. Т.е. не для unicode KOL_string уже не равно string, что напрягает, но другого выхода нет, иначе Delphi не понимает, чего от него хотят, и генерирует обработчик с параметром string вместо KOLString, как объявлено.
Страницы: 1 2 вся ветка
Форум: "KOL";
Текущий архив: 2008.03.16;
Скачать: [xml.tar.bz2];
Память: 0.57 MB
Время: 0.007 c