2017-01-17 10 views
1

Я нашел пример, используя свойство TMenuBar.UseOSMenu, чтобы разместить главное меню для Windows и Mac. Но, похоже, это только для Delphi. Я не могу найти такое же свойство в компоненте FMX в C++ Builder.Как поместить панель меню в панель меню Apple в Mac OS с помощью C++ Builder?

Кто-нибудь знает, как установить панель меню в строке меню Apple на Mac OSX на C++?

Я использую C++ Builder 10.1 Берлин Update 2.

ответ

0

Там нет UseOSMenu собственности в 10.1 Берлин, в Delphi или C++. Он был снят в XE3:

New Units and Changes in FireMonkey XE3

UseOSMenu был удален. Для приложений мультиплатформенных, вы должны использовать FMX.Menus.TMainMenu, невизуальный компонент

Смотрите также:

Using Menus in a FireMonkey Application

Создание меню для OS X и Windows,

Используйте правильный контроль за вашей целевой системы (OS X и Windows).

  • Для приложений Windows, использовать TMenuBar контроль:

    • Главное меню помещается в клиентской области формы (стандарт для Windows).
    • Элементы меню не находятся в строке меню Mac OS X (нестандартно для OS X).
  • для приложений Mac OS X, используйте TMainMenu компонент:

    • Главное меню помещается в области неклиентской формы ОС Windows (нестандартной для Windows).
    • Элементы меню размещаются в строке меню Mac OS X (стандарт для OS X).
+0

Спасибо, Реми. Он отлично работает, чтобы использовать TMainMenu в Mac OS X. –

+0

Привет, Remy, знаете ли вы, как отключить/скрыть TMainMenu, когда приложение предназначено для Windows? Ожидается, что мое приложение будет использоваться для Mac OS X и Windows. Для вышеприведенного комментария мне нужно использовать «TMenuBar» для Windows и «TMainMenu» для Mac OS X. Я могу скрыть «TMenuBar», когда он работает в Mac OS X, но я не могу скрыть «TMainMenu», когда он работает в Windows. И если я использую только «TMainMenu» для обеих ОС, иногда он сообщал об ошибке при запуске в Windows. Можно ли использовать «TmainMenu» в Mac OS X и Windows? Благодаря! –

+0

У меня нет подсказки. Это область, где использование представлений для каждой платформы обычно имеет смысл, за исключением того, что вы не можете иметь компоненты на платформе в отдельных представлениях, которые, я думаю, действительно глупы. И весь смысл FireMonkey - написать код один раз и использовать его на разных платформах, так почему же не существует одного компонента меню, который ведет себя соответственно на каждой платформе? Я не знаю.вам, вероятно, придется прибегать к '$ IFDEF' для динамического создания каждого компонента меню, когда это необходимо. –