![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Ровняю в TForm.FormCreate командой
Код:
ModifyMenu(MainMenu1.Handle, N42.MenuIndex, MF_BYPOSITION or MF_POPUP or MF_HELP, N42.Handle, pchar(N42.Caption)); Как побороть? |
#2
|
||||
|
||||
![]() А как вы надпись на пункте меняете, часом не
Код:
N42.Caption:= 'бла-бла'; Код:
MainMenu1.OwnerDraw:= true; ModifyMenu(MainMenu1.Handle, N1.MenuIndex, MF_BYCOMMAND, 0, PChar('бла-бла')); MainMenu1.OwnerDraw:= false; З.Ы. А может лучше отказаться от использования MainMenu - сделать его на основе CoolBar'а через ToolBar с кнопками, у тулбара есть свойство "MainMenu". Таким макаром можно собрать типа менюшку убрав её предварительно из свойств формы. А в самый правый край ей влепить еще один тулбар с одной кнопкой — "пунктом меню". Я бы так сделал. Остается только позиционировать крайний тулбар в OnResize при смене ширины формы, и всё. Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#3
|
|||
|
|||
![]() Спасибо за ответ, попробовал ваш вариант - не работает, если меняю "MF_BYCOMMAND" на "MF_BYPOSITION" то работает, но точно так же как "N42.Caption:=", тоесть - передергивает в лево
Последний раз редактировалось Oreon, 23.06.2013 в 13:43. |
#4
|
||||
|
||||
![]() Цитата:
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#5
|
||||
|
||||
![]() В SDK есть флаг MF_RIGHTJUSTIFY или как-то так. Здравствуй, Windows 3.x.
![]() |
#6
|
||||
|
||||
![]() Да, есть, но пользовать его надо в связке
Код:
... MF_BYPOSITION or MF_RIGHTJUSTIFY, ... Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#8
|
||||
|
||||
![]() Странно, на W7D7 нормально работает, тогда советую всё же смотреть в сторону эмулятора меню, будет проще.
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#9
|
||||
|
||||
![]() VCL внутри себя пересоздает меню при некоторых условиях, -- уже запамятовал, каких... То ли при автоматическом переназначении горячих клавиш, то ли еще когда. Советую покурить справку по этому поводу.
Другой совет -- попробовать поотключать для меню и его пунктов свойства, которые могут вызвать его пересоздание. Какие конкретно свойства -- либо выяснять опытным путем, либо копаться в исходниках VCL. |