Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Graue Farbe neben den Menüitems ändern? (XPMenu) (https://www.delphipraxis.net/21419-graue-farbe-neben-den-menueitems-aendern-xpmenu.html)

gwxxl 2. Mai 2004 18:19


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?

http://s-misch.de/menu.PNG

mfg gwxxl

Muetze1 2. Mai 2004 19:05

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:
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;
Ich denke mal in dem Code ist das wichtigste leicht zu erkennen.

Klassik Design
http://www.muetze1.de/images/boards/ClassicStyle.jpg

New Design
http://www.muetze1.de/images/boards/NewStyle.jpg

Menu wird von mir beides selbst gezeichnet. Das mit dem Menuhintergrund sieht man ja auch...

MfG
Muetze1

gwxxl 2. Mai 2004 19:37

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

Robert_G 2. Mai 2004 20:44

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.

Muetze1 2. Mai 2004 20:58

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:
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;
MfG
Muetze1

gwxxl 2. Mai 2004 21:17

Re: Graue Farbe neben den Menüitems ändern? (XPMenu)
 
Super danke, hat funktionier. :D

eddy 25. Nov 2005 16:03

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

Muetze1 1. Jan 2006 22:10

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

Nils_13 19. Jan 2006 14:56

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 ?

Muetze1 19. Jan 2006 15:03

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 20:58 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