| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Кнопки |
| Автор: kирилл 13.6.2006, 12:50 | ||
Подскажите, как сделать подобную кнопку без применения экзотики (по-моему, можно сделать из SpeedBar, но как)?
|
| Автор: comtat 13.6.2006, 13:28 |
| Вариантов много вот несколько : 1. Можно через PopupMenu 2. можно через ToolBar создав кнопку Button и свойстве Style выбрать tbsDropDown |
| Автор: comtat 13.6.2006, 13:47 |
| Ставишь на форму ToolBar Нажимаешь правой кнопкой на нем вылазит меню выбираешь New Button в его свойствах находишь Style а том уж и tbsDropDown |
| Автор: kирилл 13.6.2006, 14:48 |
| ToolBar я ставить не хочу, т.к. он не держит стиль XP, и тулбар становиться одноцветным и выделяется. |
| Автор: z-END 13.6.2006, 14:59 | ||
а у тебя на скринщоте именно он и есть... |
| Автор: kирилл 13.6.2006, 15:05 |
У меня в винде настроено отображение в классическом стиле. Но я не думаю, что так всем нравится, поэтому необходимо, чтобы мои усилия по созданию панели в стиле WinXP не оказались напрасными... |
| Автор: comtat 13.6.2006, 15:13 | ||
Ну тогда используй ActionManager, XPColorMap и ActionToolBar Могу пример кинуть ... |
| Автор: z-END 13.6.2006, 15:14 | ||
Ты уж определись чего ты хочешь
|
| Автор: kирилл 13.6.2006, 15:22 | ||
Компонент без экзотики необходим для сохранения стиля WinXP.
Буду очень признателен, если скинешь на адресс ok<at>mne<dot>ru |
| Автор: comtat 13.6.2006, 15:34 |
| Короче берешь ActionManager, XPColorMap и ActionToolBar и настраиваешь стиль под то что ты хошешь так как ты считаешь, что должен выглядеть стиль XP Удачи |
| Автор: kирилл 13.6.2006, 15:37 |
| Под "стиль ХР" имею ввиду переливаемость тулбара в ИЕ (он вначале светлый, а в конце темнее) |
| Автор: comtat 13.6.2006, 15:48 |
| Так всего лишь градиентная заливка нужна ?? |
| Автор: kирилл 13.6.2006, 15:57 |
| Да, но начальный и конечный цвета заранее не известны |
| Автор: z-END 13.6.2006, 16:04 |
| кстати, а разве тулбар XPmainfest не понимает?! |
| Автор: kирилл 13.6.2006, 19:08 |
Вроде нет. Он монотонен. Но там вроде была прозрачность... Позже посмотрю. |
| Автор: kирилл 13.6.2006, 22:13 |
| C ToolBar ничего не получается - он монотонного серого цвета |
| Автор: skyboy 13.6.2006, 22:46 |
| в пакете компонентов http://jvcl.sourceforge.net/ на закладке buttons есть компонент arrowedbutton. Точь-в-точь, как тот, что на рисунке у тебя в первом посте. |
| Автор: kирилл 14.6.2006, 11:16 |
| skyboy, пакет jedi-vcl у меня не установился. comtat, спасибо за исходники, но мне нужны не кнопки с подсветкой, а чтобы сама панель была с левой стороны одного цвета, с правой другого, а между ними градиентный переход. Кто-нибудь знает, как сделать такой переход для компонента ToolBar? |
| Автор: Snowy 14.6.2006, 11:36 | ||||
Сделай вызов этой процедуры в OnPaint. В OnResize пропиши Invalidate; У formы установи DoubleBufered в true. Пример использования:
В третий параметр можешь указать 2 и более цветов для градиента. |
| Автор: skyboy 14.6.2006, 11:43 |
| kирилл, как это - "не установился"? ты "ридми.тхт" читал? надо в vcl\examples\installhelper запустить проект, скомпилировать, он сам всё установит... |
| Автор: kирилл 14.6.2006, 11:57 | ||
На этой строке выдает ошибку (неизвестный идентификатор). Поиск в google ничего не дал... (по-моему в D2005 Canvas вообще нет) |
| Автор: Snowy 14.6.2006, 12:08 |
| Первый код поставь выше. А Canvas не может не быть - это основа. |
| Автор: kирилл 14.6.2006, 12:20 | ||
Не катит. Создаю новое VCL Forms Application, вставляю часть кода. Результат:
Запускаю, выдает ошибку "Undeclared identifer: 'MultiGradientRect'" |
| Автор: Snowy 14.6.2006, 13:23 | ||
| Ясен перец. После {$R *.dfm} вставь процедуру
который я привёл выше. Вот же он - первый в этом посте: http://forum.vingrad.ru/index.php?showtopic=100247&view=findpost&p=762589 А ты только второй код взял. Добавлено @ 13:25 Прочитай этот пост 3 раза. 1-й код - процедура 2-й пример использования. Ты взял пример использования, а чего использовать - не взял... Вот и не работает. |
| Автор: kирилл 16.6.2006, 12:56 |
| Snowy, Всавил код, все работает, заливает, кроме одного |
| Автор: Snowy 16.6.2006, 14:17 |
| Проверил, перепроверил - всё работает. Попробуй создать приложение с нуля и добавить этот код, ничего не перенастраивая. Если не сработает - выкладывай. P.S. какая версия дельфей? |
| Автор: kирилл 16.6.2006, 17:22 |
| Если приложение с нуля - то все отлично работает. А долбынный тулбар заливается черным |
| Автор: Snowy 16.6.2006, 17:26 |
| У тулбара нужно не в OnPaint писать, а в OnCustomDraw. |