AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TMainMenu unter OSX

Ein Thema von Peter666 · begonnen am 14. Sep 2013 · letzter Beitrag vom 16. Sep 2013
Antwort Antwort
Peter666

Registriert seit: 11. Aug 2007
357 Beiträge
 
#1

TMainMenu unter OSX

  Alt 14. Sep 2013, 11:34
Hi,

ich hab mal eine Frage. Bei XE2 musste ich, um den ersten Menüeintrag im Applikationsmenü zu haben folgendes machen:

application.ApplicationMenuItems := mnuMain;
mnuMain.Visible := false;

Wie mache ich das unter XE5?
  Mit Zitat antworten Zitat
CHackbart

Registriert seit: 22. Okt 2012
267 Beiträge
 
#2

AW: TMainMenu unter OSX

  Alt 15. Sep 2013, 11:01
Mit Bordmitteln geht das nicht wirklich, auch scheinen die Shortcuts zerfriemelt.

Meine Behelfsfunktion schaut so aus (FMX.Platform muss eingebunden sein):

Code:
function ActivateMenu(const Menu: TMainMenu): Boolean;
 var MenuService: IFMXMenuService;
begin
 result := assigned(Menu) and
  TPlatformServices.Current.SupportsPlatformService(IFMXMenuService, IInterface(MenuService));

 if result then
    MenuService.CreateOSMenu(Application.MainForm, Menu);
end;
Ich sollte eventuell erwähnen das das Hauptformular kein Menü haben sollte, sondern entweder ein Unterformular oder ein Datenmodul.

Geändert von CHackbart (15. Sep 2013 um 11:05 Uhr)
  Mit Zitat antworten Zitat
CHackbart

Registriert seit: 22. Okt 2012
267 Beiträge
 
#3

AW: TMainMenu unter OSX

  Alt 16. Sep 2013, 10:59
Nachtrag:
Es ist wesentlich sauberer, wenn Du das hier machst:

Delphi-Quellcode:
TMainMenu = class(FMX.Menus.TMainMenu, IItemsContainer)
  protected
    procedure DoRecreateOSMenu(const Form: TCommonCustomForm); override;
  public
    procedure Activate;
  end;

{ TMainMenu }
procedure TMainMenu.Activate;
begin
  IFMXMenuService(TPlatformServices.Current.GetPlatformService(
    IFMXMenuService)).CreateOSMenu(Application.MainForm, Self);
end;

procedure TMainMenu.DoRecreateOSMenu(const Form: TCommonCustomForm);
begin
  { do nothing - Activate method now controls this }
end;
Das ist in abgewandelter Form von hier: http://delphihaven.wordpress.com/category/xe3/page/2/

Christian
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:35 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz