![]() |
Farbe des Querstriches im Popup-Menu ändern
Hallo Leute,
nachdem erfolgreich mit ![]() Die mit '-' erzeugten durchgezogenen Trennlinien erscheinen z. Zt. noch standardmäßig Schwarz auf Grau. Bei der Nutzung des über obigen Link veröffentlichten Code erhalte ich zwar einen Strich, aber eben nicht mehr mit der grafischen Einprägung. Weiß jemand, wie man eine solche Linie selbst im PopupMenu erzeugen kann? mfg eddy |
Re: Farbe des Querstriches im Popup-Menu ändern
Male Dir den 3D-Effekt doch selbst indem Du eine zweite Linie um ein Pixel versetzt zeichnest.
Gruß, teebee |
Re: Farbe des Querstriches im Popup-Menu ändern
Hallo teebee,
kannst Du mir auch noch mit ein paar Zeilen Programmcode oder einem passenden Link auf die Sprünge helfen? Ist ja vielleicht ganz einfach, aber wenn man sich mit Zeichnen von Grafiken noch nicht befaßt hat, klemmt's an allen Ecken und Enden. mfg eddy |
Re: Farbe des Querstriches im Popup-Menu ändern
Geht z.B. so:
Delphi-Quellcode:
Gruß, teebee
procedure TForm1.SeperatorDrawItem(Sender: TObject; ACanvas: TCanvas;
ARect: TRect; Selected: Boolean); Var y: Integer; begin ACanvas.Pen.Color := clRed; y := ARect.Top+(ARect.Bottom-ARect.Top) Div 2; ACanvas.MoveTo(0,y); ACanvas.LineTo(ARect.Right,y); ACanvas.Pen.Color := clYellow; ACanvas.MoveTo(0,y+1); ACanvas.LineTo(ARect.Right,y+1); end; |
Re: Farbe des Querstriches im Popup-Menu ändern
Hallo teebee,
Dein Code hat ausgezeichnet funktioniert, danke für die Unterstützung. Ich habe noch mit Hintergrundfarbe und Stiftbreite experimentiert. Das mit dem 3D-Effekt ist noch nicht gelöst, aber das ist nur ein Frage des Probierens mit verschiedenen Farben. Für alle, die das ganze auch noch interessieren könnte:
Delphi-Quellcode:
mfg
procedure TFAllgUP21.NxDrawItem(Sender: TObject; ACanvas: TCanvas; ARect: TRect; Selected: Boolean);
const Margin = 5; var y : Integer; begin // Hintergrund zeichnen ACanvas.Brush.Color := clAqua; ACanvas.FillRect(ARect); DrawText(Handle, PChar(''), 0, ARect, DT_SINGLELINE or DT_VCENTER); // vertikale Pos. ermitteln y := ARect.Top + (ARect.Bottom - ARect.Top) Div 2; // Stiftbreite setzen ACanvas.Pen.Width := 3; // Strich zeichnen ACanvas.Pen.Color := clBlue; ACanvas.MoveTo(Margin, y); ACanvas.LineTo(ARect.Right-Margin, y); end; eddy |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:28 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