Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Farbe eines Menüs verändern


Mari - Sa 14.12.02 19:06
Titel: Farbe eines Menüs verändern
Wie kann ich bei einem Menü die Hintergrundfarbe oder Schriftfarbe eines Menüpunktes oder des ganzen Menüs verändern bzw. als Hintergrund für die Menüpunkte eine Bitmap nehmen?

Mari


Anonymous - Sa 14.12.02 22:20

Was für eine Delphiversion?


Mari - So 15.12.02 13:01

5 oder 6


Anonymous - So 15.12.02 18:57

5 oder 6? Dann hast du neue Evens oder auch nicht.


Tino - Mo 16.12.02 10:01

Hallo Mari,

die MenuItems verfügen über das OnDrawItem-Event. Mit hilfe dieses Events kannst Du die Menüpunkte selbst zeichnen!

Gruß
TINO


Anonymous - Mo 16.12.02 11:00

Der OnDrawItem-Event ist relativ neu. Da muß er schon wissen was für eine Version er hat. Wenn er wirklich 5 oder 6 hat, dann mußte OnDrawItem schon drinn sein. Wenn es eine ältere Version ist, dann kann er den Event suchen bis er schwarz ist.


Tino - Mo 16.12.02 11:06

Popov hat folgendes geschrieben:
Da muß er schon wissen was für eine Version er hat.

hat er/sie doch
Mari hat folgendes geschrieben:
5 oder 6

und in beiden Versionen ist diese Event vorhanden.

Gruß
TINO


Anonymous - Mo 16.12.02 11:52

Das war nicht 5 und 6, sondern 5 oder 6. 5 oder 6 kann bei mir auch 2 oder 5 oder auch 3 oder 6 bedeuten. Das bedeutet, daß er nicht weiß welche Version er hat. Eigentlich bin ich mir schon im klaren welche Version von Delphi ich habe. Bevor ich also viertel Stunde Zeit opfere und ihm ein Beispiel schreibe, möchte ich vorher wissen ob das vertane Mühe ist. Es wäre dann schön wenn er als Gegenleistung 10 Sekunden opfern würde um zu gucken was für eine Version es wirklich ist.


Mari - Mo 16.12.02 16:20

Ich hab's inzwischen herausgefunden:

Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure TForm1.Item1DrawItem(Sender: TObject; ACanvas: TCanvas;
  ARect: TRect; Selected: Boolean);
begin
   acanvas.brush.Color := cllime;
   aCanvas.FillRect(ARect);
   aCanvas.TextOut(ARect.Left + 2, ARect.Top + 1, item1.Caption);
end;

Die Eigenschaft Ownerdraw des Mainmenus muss dabei auf true stehen.

Zitat:
Das bedeutet, daß er nicht weiß welche Version er hat
Nein, so blöd bin ich nicht :wink: , ich meinte dass ich Delphi5 und Delphi6 habe und es für eine der beiden oder beide Versionen wissen wollte.

Mari