Как выровнять меню

  • Автор темы Vadik(R)
  • Дата начала
V

Vadik(R)

В общем мой вопрос сложно описать, но легко проиллюстрировать. Смотрим рисунки вложения.
Вопрос: как выровнять меню как во втором рисунке, то есть по правому краю? Есть ли вообще такое свойство в делфи?
___________1.PNG
___________2.PNG
 
V

Vadik(R)

Насчет настроек - по-моему все перепробывал - не нашел. Когда назначаешь клавишу быстрого доступа - её сочетание автоматически приписывается к меню. Проблема в том, что выравнивание идет по левому краю. Но выход я кажется нашел. Просто написать на кнопках значения клавиш быстрого доступа, создать ещё одно меню. Второе меню сделать скрытым, назначить клавишы быстрого доступа туда, а при нажатии быстрых клавиш сделать сделать что-то типа: Меню2.Онклик Бегин Меню1.Клик Енд. Но это конечно я набросками написал, просто меня бесит что этот способ немного через Ж, а меня уже это достало, у меня почти все программирование на Delphi сводится к программированию через Ж...
 
V

vital

у меня почти все программирование на Delphi сводится к программированию через Ж...
Вот это весьма символично.. Очень ярко показывает ситуацию сложившуюся у борланда.. или кто там уже.. Embarcadero вроде.

И поделу.
Раз применять методы пятой точки.. А не проще пробелами выровнять?=)
 
V

Vadik(R)

Пытался пробелами, но как-то странно, делфи все равно подвигает "текст горячих клавиш". Да ладно, проблема-то уже нашла решение :)
 
Z

zubr

1. Достаточно установить свойство TMainMenu.OwnerDraw в True.
2. При TMainMenu.OwnerDraw = True в обработчике события TMenuItem.OnDrawItem вообще с меню можно делать что угодно, рисовать, шрифт менять, даже под углом текст выводить.
3. Если сравнивать работу с меню в Delphi, к примеру, с работой с меню в VS C++ MFC, то там того самого через ж.пу на порядок больше.
 
V

vital

2Zubr
Уважаемый зубр. Просьба. Специально для меня седлайте пример вывода меню под углом.. Просто интересно как это. Правда, очень=)
 
Z

zubr

Меню с 2-мя строками под 45 градусов по часовой и против часовой стрелки.
 

Вложения

  • Project.rar
    1,8 КБ · Просмотры: 159
V

vital

Спасибо)

Все, оказалось просто.. Эх.. Не хватает мне знаний с опытом=) И еще. Меню там начинаются с &. Сама дельфи, вроде бы использует его как указатель, типа след букву подчеркнуть. А как обработаь это самому? Как подчеркнуть отдельную букву перед которой амперсанд?
 
Z

zubr

Ручками. Алгоритм следующий:
1. У фонта канвы выставляем стиль fsUnderline.
2. Выводим первую букву (TextRect или TextOut).
3. У фонта канвы убираем стиль fsUnderline.
4. Выводим оставшийся текст: ACanvas.TextOut(textLeft + ACanvas.TextWidth('C'), textTop, 'mmmmmmmm'); Здесь C-первая буква текста.
 
V

Vadik(R)

Ого! zubr, как всегда выручаешь! Спасибо! :)
 
V

Vadik(R)

Вот ещё вопрос, надеюсь последний ^_^
Вы, наверное, заметили, что последнее время задаю много вопросов. Это просто потому что решил создать программку на делфи с небольшим хоть каким-то интерфейсом, и узнать что-то новое. Уже давно на Делфи не писал ничего.
Ну вот в общем суть вопроса: вы наверное замечали, что у некоторых программ в меню есть слева значок, например для меню новый файл - обычно белый лист бумаги, открыть - открытая папочка, сохранить - дискета. Так вот, где эти значки берут? Некоторые рисуют сами - это видно, что значки не обычные. Но в большинстве случаев значки у "Новый файл", "Открыть", "Сохранить" и "О программе" в разных программах одинаковые. Я пытался искать эти значки в интернете, но попадал на сайты, где есть значки просто для программ, папок и т.д. А именно для меню программы - нет. Не подскажите, где можно добыть значки именно для меню?
Заранее спасибо.
 
E

etc

Познакомтель с TActionList (вроде так), у него кое что есть - из стандартного.
 
V

vital

А еще вместе с самой дельфей идет набор картинок в папке Borland[codegear] shared(она нахоидится там, где указали при установке(там спрашивалось=).. Обычно C:\program file\borland shared если не ошибаюсь.. Я просто менял этот путь всегда), и вместе с студией от МС идут эти картинки тоже(не помню в какой папке)
 
V

Vadik(R)

vital, спасибо, правда там уж очень позорные иконки и их мало, лучше уж без них тогда ;)
Хотя может это зависит и от версии Delphi?
Но в любом случае, проблему я свою решил: они находятся в shell32.dll и comctl32.dll, так же в какой-то из библиотек находится и курсор для ссылки, который я так сильно искал в соседней теме ;)
 
V

vital

Начиная с версии 2005 (или 2006.. опять же не понмю точно) вместе с дельфей помимо стандартных дельфийских идет набор картинок от студии GlyFX(в борланд шейред одноименная папка) так вот там весьма не позорные иконки.
А выдирать картинки редактором ресурсов.. Упаси боже) Зачем тратить время?
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!