AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Graue Farbe neben den Menüitems ändern? (XPMenu)
Thema durchsuchen
Ansicht
Themen-Optionen

Graue Farbe neben den Menüitems ändern? (XPMenu)

Ein Thema von gwxxl · begonnen am 2. Mai 2004 · letzter Beitrag vom 19. Jan 2006
Antwort Antwort
gwxxl

Registriert seit: 23. Apr 2004
Ort: Berlin
19 Beiträge
 
#1

Graue Farbe neben den Menüitems ändern? (XPMenu)

  Alt 2. Mai 2004, 19:19
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
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#2

Re: Graue Farbe neben den Menüitems ändern? (XPMenu)

  Alt 2. Mai 2004, 20:05
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
  Mit Zitat antworten Zitat
gwxxl

Registriert seit: 23. Apr 2004
Ort: Berlin
19 Beiträge
 
#3

Re: Graue Farbe neben den Menüitems ändern? (XPMenu)

  Alt 2. Mai 2004, 20:37
Danke erstma,

ich bin da noch net ganz hinter gestiegen. könntest du die prozedur mal im detail erklären?

mfg
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#4

Re: Graue Farbe neben den Menüitems ändern? (XPMenu)

  Alt 2. Mai 2004, 21:44
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.
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#5

Re: Graue Farbe neben den Menüitems ändern? (XPMenu)

  Alt 2. Mai 2004, 21:58
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
  Mit Zitat antworten Zitat
gwxxl

Registriert seit: 23. Apr 2004
Ort: Berlin
19 Beiträge
 
#6

Re: Graue Farbe neben den Menüitems ändern? (XPMenu)

  Alt 2. Mai 2004, 22:17
Super danke, hat funktionier.
  Mit Zitat antworten Zitat
Benutzerbild von eddy
eddy

Registriert seit: 4. Jan 2003
Ort: Sachsen
573 Beiträge
 
Delphi 5 Professional
 
#7

Re: Graue Farbe neben den Menüitems ändern? (XPMenu)

  Alt 25. Nov 2005, 17:03
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
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#8

Re: Graue Farbe neben den Menüitems ändern? (XPMenu)

  Alt 1. Jan 2006, 23:10
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
  Mit Zitat antworten Zitat
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#9

Re: Graue Farbe neben den Menüitems ändern? (XPMenu)

  Alt 19. Jan 2006, 15:56
Es funktioniert ja recht gut, aber wie kann ich dann noch die Schriftfarbe des MainMenus abändern ?
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#10

Re: Graue Farbe neben den Menüitems ändern? (XPMenu)

  Alt 19. Jan 2006, 16:03
Entweder du malst selber das Menu oder du schaust dir die Eigenschaften von deiner XPMenu Komponente mal an...
  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 04:03 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