AGB  ·  Datenschutz  ·  Impressum  







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

MainMenu ownerdrawn vs. Styles

Ein Thema von striderx · begonnen am 20. Sep 2020 · letzter Beitrag vom 21. Sep 2020
Antwort Antwort
striderx

Registriert seit: 11. Feb 2007
Ort: Bergisch Gladbach
206 Beiträge
 
Delphi 10.4 Sydney
 
#1

MainMenu ownerdrawn vs. Styles

  Alt 20. Sep 2020, 09:54
Ich habe für ein MainMenu mit Ownerdraw / MeasureItem / AdvancedDrawItem die Darstellung angepaßt (vor allem größere Schrift). Das klappt auch wunderbar, bis ich für die Anwendung (VCL) einen Style aktiviere. Dann werden die MenuItems der ersten Ebene nicht mehr korrekt dargestellt (auf den Ebenen darunter ist alles in Ordnung).

Jetzt kann man für ein MainMenu die Styles ja nicht selektiv deaktivieren (zumindest nicht über den Objekt-Inspektor). Hat jemand einen Tipp?
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.685 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: MainMenu ownerdrawn vs. Styles

  Alt 21. Sep 2020, 08:07
Versuche mal auf TActionMainMenuBar umzustellen.
Damit sollten Styles funktionieren.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
striderx

Registriert seit: 11. Feb 2007
Ort: Bergisch Gladbach
206 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: MainMenu ownerdrawn vs. Styles

  Alt 21. Sep 2020, 09:32
Versuche mal auf TActionMainMenuBar umzustellen.
Auf TActionMainMenuBar bin ich auch schon gestossen, aber ich blicke da überhaupt nicht durch. Abgesehen davon würde das bedeuten, in mehreren Anwendungen ca. 80 MenuItems umzubauen - so reizvoll ist das dann auch nicht unbedingt.


Zitat:
Damit sollten Styles funktionieren.
Sollten? So genau weißt du das also auch nicht?


Ansonsten habe ich das hier gefunden:

TStyleManager.SystemHooks := TStyleManager.SystemHooks - [shMenus];

Ich bekomme es nur leider nicht zum funktionieren.

Geändert von striderx (21. Sep 2020 um 09:35 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.685 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: MainMenu ownerdrawn vs. Styles

  Alt 21. Sep 2020, 09:47
Ich kann nicht für Deine Delphi Version sprechen. Bei 10.3 bin ich so an styled menus gekommen.
Es ist aufwändiger aber man mag was hinten raus kommt, sprich: es lohnt sich!

how-to-add-submenus-to-tactionmainmenubar-programatically auf stackoverflow zeigt einem wie man dynamisch vorgehen könnte.

Delphi-Quellcode:
procedure TForm1.SpeedButton1Click(Sender: TObject);
var
  iActionClientItem : TActionClientItem;
  iSubMenuItem : TActionClientItem;
  iFileAction : TCustomAction;
  iChildMenu : TActionBarItem;
begin
  ActionManager1.AddSeparator( ActionManager1.FindItemByAction(FileExit1), FALSE );
  iActionClientItem := ActionManager1.AddSeparator( ActionManager1.FindItemByAction(FileExit1) );
  iFileAction := TCustomAction.Create( self ); // we want to put in same collection
  iFileAction.Caption := 'Fred';
  // etc.. to build what is wanted
  iActionClientItem := ActionManager1.AddAction( iFileAction, iActionClientItem ) ;

  //*********************************
  // Build sub menu (from Fred) - stage 1 add the visual element - a new action bar
  iChildMenu := ActionManager1.ActionBars.Add;
  iActionClientItem.ChildActionBar := iChildMenu.ActionBar;

  // we add a dummy entry that we can build from.
  // We could set the properties manually, but when we use the action manager
  // it does that automatically, so it is easier just to set this item to not visible
  // then use action manager to do the rest.
  iSubMenuItem := iActionClientItem.Items.Add;
  iSubMenuItem.Visible := FALSE;

  // Now the real build...

  iFileAction := TCustomAction.Create( self ); // we want to put in same collection
  iSubmenuItem := ActionManager1.AddAction( iFileAction, iSubMenuItem );
  iSubmenuItem.Caption := 'Fred 1';
  // etc

  iFileAction := TCustomAction.Create( self ); // we want to put in same collection
  iSubmenuItem := ActionManager1.AddAction( iFileAction, iSubMenuItem );
  iSubmenuItem.Caption := 'Fred 2';
  // etc
end;
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
striderx

Registriert seit: 11. Feb 2007
Ort: Bergisch Gladbach
206 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: MainMenu ownerdrawn vs. Styles

  Alt 21. Sep 2020, 09:52
Das sieht ein wenig gruselig aus. Und das Ganze dann für ca. 80 MenuItems nur um die Schriftgröße anzupassen - nee.

Aber vielen Dank!
  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 18:10 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