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 Farbe des Querstriches im Popup-Menu ändern (https://www.delphipraxis.net/58894-farbe-des-querstriches-im-popup-menu-aendern.html)

eddy 14. Dez 2005 11:23


Farbe des Querstriches im Popup-Menu ändern
 
Hallo Leute,

nachdem erfolgreich mit Farbe eines PopUpMenu ändern einige meiner PopupMenus selbst dem "blindesten" Nutzer ins Auge fallen, möchte ich noch einen kleinen - zumindest aus meiner Sicht - Schönheitsfehler bekämpfen.

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

teebee 14. Dez 2005 12:07

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

eddy 14. Dez 2005 14:28

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

teebee 14. Dez 2005 21:03

Re: Farbe des Querstriches im Popup-Menu ändern
 
Geht z.B. so:
Delphi-Quellcode:
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;
Gruß, teebee

eddy 15. Dez 2005 00:31

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:
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;
mfg
eddy


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:46 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