Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.03.16;
Скачать: CL | DM;

Вниз

Версия 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 вся ветка

Текущий архив: 2008.03.16;
Скачать: CL | DM;

Наверх




Память: 0.58 MB
Время: 0.016 c
2-1203455145
{RASkov}
2008-02-20 00:05
2008.03.16
MessageBox + MB_HELP


2-1203317888
ryden
2008-02-18 09:58
2008.03.16
Как поместь форму в dll


2-1203185365
guav
2008-02-16 21:09
2008.03.16
Хитрые структуры данных.


2-1203246209
arreke
2008-02-17 14:03
2008.03.16
Удалить самого себя 2


2-1203124294
DJ_UZer
2008-02-16 04:11
2008.03.16
Цвет текста