![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Меню со стилем OfficeXP [Delphi, Windows]
shalex © (2005-10-07 14:19:00)Я перевел на KOL компонент для отрисовки меню со стилем OfficeXP с возможностью изменять цвет, шрифт... может кому-нибудь тоже пригодится:
http://kol.lighthost.ru/files/XPMenus.rar
Это мой первый опыт создания KOL компонента, поэтому обо всех ошибках сообщите мне на мыло. Предложения тоже приветствуются :)
rOOse (2006-02-22 08:36:00) [1]У меня Делфи ругается на WndProcMenu : Undeclared
ECM (2006-02-13 11:25:00) [2]Извиняюсь... сразу не въехал, что D5... отвык от пятерки уже...
:))
rainstuff (2006-02-12 21:06:00) [3]to ECM:поиск - это первое, чем я воспользовался:)
to fellix:Я так и сделал, правда, для Rect и Point уже написал функции вручную:) Надо будет попробовать Make:) Thanx!
fellix (2006-02-12 17:06:00) [4]В Delphi 5 нет Types.pas.
--------------
Решение для KOL 2.33 + D 5 + XPMenus 1.09 :
В XPMenus.pas из uses удалить Types и заменить все вызовы Rect и Point на MakeRect и MakePoint.
Плюс в mckXPMenus.pas тупо исправить OnMenuItemMethodName (False).
ECM (2006-02-12 16:25:00) [5]<DelphiDir>\Source\Rtl\Sys\Types.pas - это стандартный модуль Delphi
учитесь пользоваться поиском по жесткому диску... :)
> Или на Delphi 5 он пахать не будет?
Будет ...
rainstuff (2006-02-12 06:14:00) [6]А не подскажите - компонента устанавливается нормально, но при компиляции спрашивает модуль "Types" не знаете где его можно взять?
Или на Delphi 5 он пахать не будет?
Спасибо.
Vladimir Kladov (2006-01-22 09:15:00) [7]Попробуйте false, вам же обычный код надо чтбы делался.
FINALSOFT (2006-01-21 13:36:00) [8]Установка компонента(1.09):
[Hint] mckXPMenus.pas(29): Overriding virtual method 'TKOLXPMainMenu.SetupFirst' has lower visibility (protected) than base class 'TKOLMainMenu' (public)
[Hint] mckXPMenus.pas(31): Overriding virtual method 'TKOLXPMainMenu.TypeName' has lower visibility (protected) than base class 'TKOLMainMenu' (public)
[Hint] mckXPMenus.pas(68): Overriding virtual method 'TKOLXPPopupMenu.SetupFirst' has lower visibility (protected) than base class 'TKOLPopupMenu' (public)
[Hint] mckXPMenus.pas(70): Overriding virtual method 'TKOLXPPopupMenu.TypeName' has lower visibility (protected) than base class 'TKOLPopupMenu' (public)
[Error] mckXPMenus.pas(170): Not enough actual parameters
[Error] mckXPMenus.pas(300): Not enough actual parameters
[Fatal Error] XPmenuD7.dpk(38): Could not compile used unit 'mckXPMenus.pas'
Версия MCK и KOL 2.30
вот это вызывается из mirror:
OnMenuItemMethodName( for_pcode: Boolean )
Что сюда передать?
SPeller (2005-10-25 04:16:00) [9]На счет границы - можно ведь просто нарисовать её чуть выше, на 1 пиксель, а снизу оставить полоску в 1 пиксель цветом фона, и проблема будет решена %)
shalex (2005-10-24 20:55:00) [10]Мерцание я уберу (думал, что только я это вижу...наивный...), хотя логически не сходится: черным не мерцало, а серым стало мерцать!?
По поводу оформления я еще посмотрю (вдруг где-то ошибся), но боюсь, что это Винда сама дорисовывает в зависимости от темы или версии Windows, ведь это не полностью нарисованный контрол как в Офисе, а перерисованное стандартное меню.
Но новая версия будет только на следующей неделе. Сейчас очень занят.
Если есть еще предложения, пишите...
SPeller (2005-10-24 13:29:00) [11]homm © (24.10.05 13:09) [33]
А ты меню в Офисе видел? Там она закрывается с любым оформлением
Ну и что :) Красивее когда не закрывается.
homm (2005-10-24 13:09:00) [12]
> Чтобы нижняя полоска рамки не закрывалась выпадающим меню.
А ты меню в Офисе видел? Там она закрывается с любым оформлением.
> Кроме того, хотелось бы избавиться от мерщания задизабленного
> итема когда мышкой по нему водишь.
На счет этого ты прав. Он зачем-то перисовывается.
mdw (2005-10-24 12:33:00) [13]Сейчас скачал, посмотрел. У меня w2000 - наблюдается такая же фигня, как у SPeller'a с нижней границей меню и задизабленный итем мерцает.
SPeller (2005-10-22 20:23:00) [14]Нижняя граница меню всё-ещё закрывается. Напомню - ХР, тема оформления - Классическая.
Кроме того, хотелось бы избавиться от мерщания задизабленного итема когда мышкой по нему водишь. В код не смотрел, но кажется мне, что ты сразу на канве менюхи рисуешь? Если да, то рисуй сначала на контексте в памяти, а потом одним битблитом выводи на контекст меню.
shalex (2005-10-22 20:12:00) [15]Вышла версия 1.09
[-] Убран лишний код в связи с выходом KOL v2.16 (спасибо Владимиру Кладову).
shalex (2005-10-13 09:19:00) [16]Вышла версия 1.08:
[+] Добавлено свойство CheckColor.
[*] Немного оптимизирован код.
[-] Устранена утечка памяти из-за неуничтожения Font.
SPeller (2005-10-12 15:22:00) [17]SPeller © (12.10.05 15:21) [27]
А вас тема новая, а вы её отключите, поставьте классическую. и наверняка получите мой результат
У вас тема новая, вы её отключите, поставьте классическую, и наверняка получите мой результат.
Торопился, понаочепятался :)
SPeller (2005-10-12 15:21:00) [18]А вас тема новая, а вы её отключите, поставьте классическую. и наверняка получите мой результат.
shalex (2005-10-12 13:04:00) [19]
> Чтобы нижняя полоска рамки не закрывалась выпадающим меню
Нижняя полоска не закрывается, она просто не рисуется, примерно также как в OfficeXP (Delphi 7).
Но... картинка выглядит у Вас как-то странно... вот у меня так:
http://kol.lighthost.ru/files/xpmenu.png
SPeller (2005-10-12 12:21:00) [20]shalex © (12.10.05 10:17) [24]
При каких свойствах это получается?
При тех, что в скомпилированной демке :) Вин ХР, классическая тема оформления.