![]() |
TreeNode / Stringgrid Schriftfarbe ändern
wie kann ich möglichst einfach die Schrif-Farbe einer TTreeNode verändern?
und wie kann ich möglichst einfach die Schrif-Farbe einer Zelle eines Stringgrids verändern? |
Beide Controls sollten ein "OnDraw???"-Event haben, das du dafür benutzen kannst. Beim TreeView hab´ ich´s nie ausprobiert (bei der ListView schon), und beim StringGrid weiß ich, dass es geht, weil ich da mal bei einem kleinen Projekt HTML-Codes inkl. eines kleinen Vierecks mit der entsprechenden Farbe pro Zeile angezeigt habe.
|
und dann ? was soll ich in dem ondraw machen? ich habe ger keine Ahnung, nachdem es keine font.color oder so gibt.
|
Doch gibt es. Immerhin hat so ein TreeView oder StringGrid doch eine "Canvas". Ich habe mal ein altes Beispiel für eine StringGrid rausgekramt und die Teile rausgenommen, die dich wahrscheinlich nicht interessieren:
Code:
[b]procedure[/b] TMenuForm.sg2DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState); [b]begin[/b] [color=#000080][i]// selection?[/i][/color] [b]if[/b](gdSelected [b]in[/b] State) [b]then[/b] [b]begin[/b] sg2.Canvas.Brush.Color := clHighlight; sg2.Canvas.Font.Color := clHighlightText; [b]end[/b] [b]else[/b] [b]begin[/b] sg2.Canvas.Brush.Color := clWindow; sg2.Canvas.Font.Color := clWindowText; [b]end[/b]; [color=#000080][i]// draw text[/i][/color] [b]if[/b](lowercase(sg2.Cells[ACol,ARow]) = 'nil') [b]then[/b] sg2.Canvas.Font.Style := [fsBold] [b]else[/b] sg2.Canvas.Font.Style := []; sg2.Canvas.Textout(Rect.Left, (Rect.Bottom + Rect.Top - sg2.Canvas.TextHeight(sg2.Cells[ACol,ARow])) [b]div[/b] 2, sg2.Cells[ACol,ARow]); [b]end[/b]; |
schön ist die möglickeit nicht, und einfach auch nicht, da kann ich ja gleich auf ein Canvas zeichnen, ohne stringgrid.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:57 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