![]() |
VirtualStringTree Header Hintergrund
Hi Delphianer
Ich übe mich mit dem VirtualStringTree und habe versucht die Header Hintergrund Farfe zu ändern. Dies habe ich geschafft aber nun sind leider die Seperatoren weg. Was mache ich da falsch? hier mal der Code
Delphi-Quellcode:
Grüsse Zodi
procedure TForm1.VSTHeaderDrawQueryElements(Sender: TVTHeader; var PaintInfo: THeaderPaintInfo; var Elements: THeaderPaintElements);
begin Elements := [hpeBackground, hpeText]; end; procedure TForm1.VSTHeaderDraw(Sender: TVTHeader; HeaderCanvas: TCanvas; Column: TVirtualTreeColumn; R: TRect; Hover, Pressed: Boolean; DropMark: TVTDropMarkMode); begin // Hintergrund des Headers setzen HeaderCanvas.Brush.Color := clSkyBlue; // Hintergrundfarbe HeaderCanvas.FillRect(R); // Textfarbe und -eigenschaften einstellen HeaderCanvas.Font.Color := clWhite; // Textfarbe HeaderCanvas.Font.Name := 'Arial'; // Schriftart HeaderCanvas.Font.Size := 10; // Schriftgröße DrawText(HeaderCanvas.Handle, PChar(Column.Text), Length(Column.Text), R, DT_CENTER or DT_VCENTER or DT_SINGLELINE); // Separatoren zeichnen HeaderCanvas.Pen.Color := clBlack; // Farbe der Separatoren HeaderCanvas.Pen.Width := 1; // Breite der Separatorenlinie // Separatoren an den Rändern der Spalten zeichnen HeaderCanvas.MoveTo(R.Right - 1, R.Top); HeaderCanvas.LineTo(R.Right - 1, R.Bottom); // Optional: Separator am unteren Rand des Headers (falls benötigt) HeaderCanvas.MoveTo(R.Left, R.Bottom - 1); HeaderCanvas.LineTo(R.Right, R.Bottom - 1); end; procedure TForm1.VSTAdvancedHeaderDraw(Sender: TVTHeader; var PaintInfo: THeaderPaintInfo; const Elements: THeaderPaintElements); begin // if hpeBackground in Elements then begin PaintInfo.TargetCanvas.Brush.Color := clSkyBlue; // Hintergrundfarbe PaintInfo.TargetCanvas.FillRect(PaintInfo.PaintRectangle); end; if hpeText in Elements then begin PaintInfo.TargetCanvas.Font.Color := clBlack; // Textfarbe DrawText(PaintInfo.TargetCanvas.Handle, PChar(PaintInfo.Column.Text), Length(PaintInfo.Column.Text), PaintInfo.PaintRectangle, DT_CENTER or DT_VCENTER or DT_SINGLELINE); end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:16 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