Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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.008 c
4-1184690788
San17
2007-07-17 20:46
2008.03.16
Как поставить пароль на раздел в реестре ?


3-1193464759
olevacho_
2007-10-27 09:59
2008.03.16
Обращение к разным БД в одном запросе


15-1202216991
Mary
2008-02-05 16:09
2008.03.16
Решение СЛАУ методом Зейделя


2-1203017485
F@T@L_Err0r
2008-02-14 22:31
2008.03.16
Ping


2-1203247667
Knob
2008-02-17 14:27
2008.03.16
FTP соединение





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский