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

Тема в разделе "Delphi - FAQ", создана пользователем Vadik(R), 17 авг 2009.

  1. Vadik(R)

    Vadik(R) Well-Known Member

    Регистрация:
    12 дек 2007
    Сообщения:
    483
    Симпатии:
    0
    В общем мой вопрос сложно описать, но легко проиллюстрировать. Смотрим рисунки вложения.
    Вопрос: как выровнять меню как во втором рисунке, то есть по правому краю? Есть ли вообще такое свойство в делфи?
    ___________1.PNG
    ___________2.PNG
     
  2. Vadik(R)

    Vadik(R) Well-Known Member

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

    vital Больной Компом Детектед
    Команда форума Web Team

    Регистрация:
    29 янв 2006
    Сообщения:
    2.474
    Симпатии:
    27
    Вот это весьма символично.. Очень ярко показывает ситуацию сложившуюся у борланда.. или кто там уже.. Embarcadero вроде.

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

    Vadik(R) Well-Known Member

    Регистрация:
    12 дек 2007
    Сообщения:
    483
    Симпатии:
    0
    Пытался пробелами, но как-то странно, делфи все равно подвигает "текст горячих клавиш". Да ладно, проблема-то уже нашла решение :)
     
  5. zubr

    zubr Гость

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

    vital Больной Компом Детектед
    Команда форума Web Team

    Регистрация:
    29 янв 2006
    Сообщения:
    2.474
    Симпатии:
    27
    2Zubr
    Уважаемый зубр. Просьба. Специально для меня седлайте пример вывода меню под углом.. Просто интересно как это. Правда, очень=)
     
  7. zubr

    zubr Гость

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

    Вложения:

    • Project.rar
      Размер файла:
      1,8 КБ
      Просмотров:
      18
  8. vital

    vital Больной Компом Детектед
    Команда форума Web Team

    Регистрация:
    29 янв 2006
    Сообщения:
    2.474
    Симпатии:
    27
    Спасибо)

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

    zubr Гость

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

    Vadik(R) Well-Known Member

    Регистрация:
    12 дек 2007
    Сообщения:
    483
    Симпатии:
    0
    Ого! zubr, как всегда выручаешь! Спасибо! :)
     
  11. Vadik(R)

    Vadik(R) Well-Known Member

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

    etc Гость

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

    vital Больной Компом Детектед
    Команда форума Web Team

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

    Vadik(R) Well-Known Member

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

    vital Больной Компом Детектед
    Команда форума Web Team

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

    etc Гость

    Правильно, их надо прям из тех длл и доставать при работе.
     
Загрузка...

Поделиться этой страницей