![]() |
Graue Farbe neben den Menüitems ändern? (XPMenu)
Hallo,
ich würde gerne die Farbe im Menü neben den Menüitems verändern. Lleider hab ich dafür keine Eigenschaft gefunden. Hat einer vielleicht nen Tipp? ![]() mfg gwxxl |
Re: Graue Farbe neben den Menüitems ändern? (XPMenu)
Moin!
Jo, da ich mein Menu dank des Bugs in den TMenuItem auch selber malen muss, habe ich mein eigenes Design und musste die Farbe auch mal ändern, daher habe ich da eine Lösung:
Delphi-Quellcode:
Ich denke mal in dem Code ist das wichtigste leicht zu erkennen.
Procedure Tfrm_FBIIMainForm.SetMainMenuBGColor;
Var MenuInfo : TMenuInfo; NewStyle : Boolean; Begin NewStyle := GetConfig(CM_NEWMENUSTYLE, Default_NewMenuStyle); fMenuBrush := TBrush.Create; If NewStyle Then fMenuBrush.Color := clWhite Else fMenuBrush.Color := clMenu; MenuInfo.cbSize := SizeOf(MenuInfo); MenuInfo.hbrBack := fMenuBrush.Handle; MenuInfo.fMask := MIM_BACKGROUND; SetMenuInfo(mnu_MainMenu.Handle, MenuInfo); End; Klassik Design ![]() New Design ![]() Menu wird von mir beides selbst gezeichnet. Das mit dem Menuhintergrund sieht man ja auch... MfG Muetze1 |
Re: Graue Farbe neben den Menüitems ändern? (XPMenu)
Danke erstma,
ich bin da noch net ganz hinter gestiegen. könntest du die prozedur mal im detail erklären? ;) mfg |
Re: Graue Farbe neben den Menüitems ändern? (XPMenu)
Warum nehmt ihr nicht das ActionBands Package? (eine halbwegs aktuelle Version von Delphi vorausgesetzt ;) )
Da kann man easy in einer ColorMap das Look'nFeel der App bestimmen. Un da hinter sämtlichen MenuItems IMHO eine Action stehen soltle, biete es sich ja auch geradezu an. |
Re: Graue Farbe neben den Menüitems ändern? (XPMenu)
Moin!
Ich arbeite mit Delphi 5 und 7 aber für mein Projekt darf ich nur Delphi 5 nutzen, daher nix mit den ActionBands...
Delphi-Quellcode:
MfG
Procedure Tfrm_FBIIMainForm.SetMainMenuBGColor;
Var MenuInfo : TMenuInfo; // Struktur für die SetMenuInfo() Funktion der WinAPI Begin // du musst dir eine globale Variable anlegen namens fMenuBrush. Diese Variable enthält einen Brush // der so lange existieren sollte wie das Menu angezeigt wird, weil die Menufunktion beim malen immer // auf das Brush Handle zugreift. fMenuBrush := TBrush.Create; // ok, diesen Brush einmal anlegen fMenuBrush.Color := clWhite // Farbe zuweisen die das Menu haben soll // die MenuInfo Struktur füllen MenuInfo.cbSize := SizeOf(MenuInfo); // die WinAPI will die Grösse der Struktur eingetragen haben MenuInfo.hbrBack := fMenuBrush.Handle; // dann will sie das Brush Handle haben zum malen MenuInfo.fMask := MIM_BACKGROUND; // dann müssen wir noch angeben, das dies für den Hintergrund ist SetMenuInfo(mnu_MainMenu.Handle, MenuInfo); // nun für unser TMainMenu namens mnu_MainMenu den Hintergrundbrush setzen End; Muetze1 |
Re: Graue Farbe neben den Menüitems ändern? (XPMenu)
Super danke, hat funktionier. :D
|
Re: Graue Farbe neben den Menüitems ändern? (XPMenu)
Hallo Muetze1,
mir ist es nicht gelungen, die Farbe in meinem Menü mit SetMainMenuBGColor zu ändern. Vermutlich fehlt noch irgendeine Zuweisung. Die Procedure habe ich in public eingetragen, doch wie rufe ich diese dann auf bzw. sage meinem MainMenü, daß es sich mit SetMainMenuBGColor zeichnen soll? Vielleicht kann mir jemand auf die Sprünge helfen? mfg eddy |
Re: Graue Farbe neben den Menüitems ändern? (XPMenu)
Moin!
Ui, deine Frage habe ich wohl überlesen. Ich rufe die Methode im DoCreate der Hauptform mit dem Menu auf. Mit anderen Worten: Rufe die Methode im FormCreate deiner Form mit dem Menu auf. Und nicht zu vergessen, falls der User mal wieder zu einer anderen Menufarbe umschaltet. Wenn dies zur Laufzeit bei dir möglich sein sollte, dann beachte ein mögliches Speicherleck, in dem du vor dem anlegen der TBrush Instanz überprüfst, ob nicht schon eine existiert... MfG Muetze1 |
Re: Graue Farbe neben den Menüitems ändern? (XPMenu)
Es funktioniert ja recht gut, aber wie kann ich dann noch die Schriftfarbe des MainMenus abändern ?
|
Re: Graue Farbe neben den Menüitems ändern? (XPMenu)
Entweder du malst selber das Menu oder du schaust dir die Eigenschaften von deiner XPMenu Komponente mal an...
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:24 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz