Неправильная позиция подменю в приложении Delphi

Мое приложение написано в делфи. По какой-то причине главное меню больше не ведет себя так, как до вчерашнего дня (вероятно, я коснулся какого-то свойства, не зная). Теперь, когда я нажимаю на пункт меню с подпунктами, хотя стрелка находится справа, подменю продолжает открываться слева.

введите здесь описание изображения

В чем причина и как восстановить обратно?


person user1238784    schedule 11.10.2012    source источник
comment
Всплывающее меню, чтобы подменю поместилось на текущем рабочем столе. Windows делает это автоматически, если подменю находится за пределами рабочего стола, оно отображается с другой стороны.   -  person TLama    schedule 12.10.2012
comment
спасибо, но подменю открывается в центре рабочего стола, это не из-за автоматического поведения Windows. Я разрабатывал это приложение в течение многих лет, и такого никогда не было.   -  person user1238784    schedule 12.10.2012
comment
Пожалуйста, отредактируйте, чтобы опубликовать изображение, которое показывает проблему (предоставьте ссылку на изображение, которое мы можем видеть, и кто-нибудь здесь может встроить его для вас). Я никогда не сталкивался с этой проблемой, и я активно использовал Delphi от v1 до XE2 (и проверяю XE3). Кроме того, это TMainMenu или TPopupMenu?   -  person Ken White    schedule 12.10.2012
comment
Хорошо, это ссылка на картинку: nwscomps.com/ss_mainmenu.jpg Это главное меню и Я использую старый добрый D5 на Windows 7 Ultimate. Такое поведение началось после установки целой кучи обновлений Win7, может ли это быть связано?   -  person user1238784    schedule 12.10.2012
comment
Забыл сказать, что это происходит не во время разработки, а только во время выполнения!   -  person user1238784    schedule 12.10.2012
comment
Как насчет меню других приложений?   -  person Sertac Akyuz    schedule 12.10.2012
comment
Привет Сертак, хороший вопрос! На самом деле я сейчас открыл веб-сайт Microsoft Expression, чтобы попробовать меню и угадайте, что? ТА ЖЕ ПРОБЛЕМА. Что происходит с моей Windows??   -  person user1238784    schedule 12.10.2012
comment
Найдите что-то вроде настроек планшетного ПК на панели управления или что-то, связанное с сенсорным экраном, устройствами ввода и т. д. Открытие подменю слева облегчает их просмотр, когда, например, вы используете перо или что-то подобное правой рукой. рука..   -  person Sertac Akyuz    schedule 12.10.2012
comment
Сертак, спасибо большое! Это исправило это. Я изменил опцию в настройках планшетного ПК. Я понятия не имею, почему злые окна решили изменить его. Обычно я никогда не обновляю ОС, это был шанс, что вчера я сделал это и посмотрел, что произошло... спасибо   -  person user1238784    schedule 12.10.2012
comment
@Sertac: Хороший улов! Вы должны опубликовать это как ответ.   -  person Ken White    schedule 12.10.2012
comment
@Кен, спасибо. Вопрос будет закрыт и удален в кратчайшие сроки (я также проголосовал за закрытие). Но у него также может быть ответ, пока он не появится.   -  person Sertac Akyuz    schedule 12.10.2012
comment
@Sertac: я вижу только один голос, чтобы закрыть - он должен быть вашим. ;-) Оказывается, это не было связано с программированием, но поначалу так не казалось.   -  person Ken White    schedule 12.10.2012


Ответы (2)


Как показано в комментариях к вопросу, это не связано с программированием. Это делается в настройках планшета в панели управления. Причина настройки заключается в том, что когда кто-то использует перо или что-то подобное правой рукой, подменю, если они открыты справа от их родительского меню, закрываются пером.

person Sertac Akyuz    schedule 12.10.2012

У меня была та же проблема, и она не имела ничего общего с моим «сенсорным экраном» или другими настройками, связанными с планшетом ПК, которые я обнаружил, изменив некоторые функции MainMenu типа TMainMenu: просто установите для функции «OwnerDraw» значение False и «ParentBiDiMode». на true Итак, если ваш родительский вид уже в порядке, это MainMenu (подменю) будет соответствовать его родителю. Я делал это 100 раз, и это сработало для меня.

person Atrin Noori    schedule 21.03.2018
comment
Интересно, почему вы делали это 100 раз, поскольку ParentBiDiMode имеет значение true, а OwnerDraw по умолчанию уже имеет значение false. - person Sertac Akyuz; 22.03.2018
comment
на 100 проектах я имел в виду - person Atrin Noori; 05.04.2018
comment
И я имел в виду, что OwnerDraw уже имеет значение false по умолчанию, а ParentBiDiMode уже имеет значение true по умолчанию, почему вы изменили их, а затем вернули к значениям по умолчанию в 100 проектах? - person Sertac Akyuz; 05.04.2018
comment
У меня всегда были какие-то проблемы с этим на любом проекте, иногда они крутили все сами - person Atrin Noori; 12.09.2018