Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   PopUpMenu Farbe ändern (https://www.delphipraxis.net/170578-popupmenu-farbe-aendern.html)

Andidreas 24. Sep 2012 14:35

Delphi-Version: 5

PopUpMenu Farbe ändern
 
Hallo zusammen,

wenn ich bei einem PopUpMenu die Farbe ändern möchte, muss ich ja beim PopUpMenu die Option "OwnerDraw" auf True setzen und anschließend je Menü Item die Farbe ändern, z.B. so:

Delphi-Quellcode:
procedure TPST_main_form.popupmen_administration_maintenance_viewdata_plantsDrawItem(
          Sender: TObject; ACanvas: TCanvas; ARect: TRect; Selected: Boolean);

var
sCaption : String;
rect     : TRect;

begin
  sCaption := (Sender as TMenuItem).Caption;

  With ACanvas Do
  Begin
    Brush.Color := $00FCDBC1;
    FillRect(ARect);
    rect := ARect;
    rect.Left := rect.Left + 5;
    DrawText(Handle, PChar(sCaption), Length(sCaption), rect, DT_SINGLELINE or DT_VCENTER);
  end;

end;
Gibt es auch eine Möglichkeit das ganze Global für das ganze PopUpMenu zu machen und nicht für jedes Item?

Edit: Ich benutze nicht Delphi Version 5 sondern das RAD XE Studio...

Bernhard Geyer 24. Sep 2012 14:48

AW: PopUpMenu Farbe ändern
 
Ab XE2 gäbe es Themes dafür.

Davor könntest du schauen wie andere Kompos wie XPMenu das machen.

Andidreas 24. Sep 2012 16:04

AW: PopUpMenu Farbe ändern
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1184207)
Ab XE2 gäbe es Themes dafür.

Wie gut das XE2 schon gekauft ist ich aber keine Zeit zum Installieren hab...
Mal ne OT Frage hierzu, gibt es Probleme XE Entwicklungen auf XE2 rüberzunehmen (Entwicklungen die von 2007 in XE übernommen wurden, wurden ja vom RAD XE Studio irgendwie geändert)?


Alle Zeitangaben in WEZ +1. Es ist jetzt 21: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-2025 by Thomas Breitkreuz