![]() |
im Teltreestringgrid die Textfarbe einer Spalte ändern
Liste der Anhänge anzeigen (Anzahl: 2)
Habe ein Treestringgrid und kein ondrawcell ereignis zur verfügung wie bekommen ich den Text einer Spalte in clred.
Ich Füge mal einen Ausschnitt der Events mit ein. Ich hoffe Ihr könnt mir weiter Helfen... |
AW: im Teltreestringgrid die Textfarbe einer Spalte ändern
Schau dir doch einfach mal alle Events an wo Draw vorkommt :roll:
|
AW: im Teltreestringgrid die Textfarbe einer Spalte ändern
Mir fallen da spontan die Ereignisse "OnItemDraw", "OnItemPostDraw" und "OnItemPreDraw" ins Auge wobei letzteres wohl am ungeeignetsten sein wird.
|
AW: im Teltreestringgrid die Textfarbe einer Spalte ändern
Onitemdraw und postdraw habe ich shon versucht aber irgendwie ändert es nicht an der Text farbe
|
AW: im Teltreestringgrid die Textfarbe einer Spalte ändern
Das ist mein Code
Delphi-Quellcode:
procedure TForm1.ElTreeStringGrid1ItemDraw(Sender: TObject;
Item: TElTreeItem; Surface: TCanvas; R: TRect; SectionIndex: Integer); var i:integer; begin for i:= 1 to eltreestringgrid1.RowCount do if eltreestringgrid1.Cells[3,i]='' then else eltreestringgrid1.Font.Color:= clred; end; |
AW: im Teltreestringgrid die Textfarbe einer Spalte ändern
Die Itemdraw Events beziehen sich alle auf die Tree und nich auf die Cells keine shance kannmann so etwas mit ner funktion schreiben?
|
AW: im Teltreestringgrid die Textfarbe einer Spalte ändern
Schau dir doch mal an, was der Event dir alles liefert.
Ausserdem ist das ein Event der für jedes Item einzeln (beim Zeichnen dieses) aufgerufen wird. Daraus folgt, dass du dich hier nur um dieses eine Item kümmern musst (und wichtiger auch nur sollst). Das Row-fache Setzen der Font-Farbe bewirkt Schlimmstenfalls sogar ein ständiges Neuzeichnen des gesamten Controls, was wiederum das Zeichen der Items auslöst, was wieder die Font-Farbe setzt, was wieder das Neuzeichenen ... usw. usw. usw. Diese Komponente ist mir nicht bekannt (vom Namen ja, sonst nicht), aber ich würde in dem Event mal vorsichtig damit anfangen:
Delphi-Quellcode:
Wird jetzt alles rot, dann kannst du dich daran machen über das Argument
procedure TForm1.ElTreeStringGrid1ItemDraw(Sender: TObject;
Item: TElTreeItem; Surface: TCanvas; R: TRect; SectionIndex: Integer); begin Surface.Font.Color:= clred; end;
Delphi-Quellcode:
herauszufinden, zu welcher Spalte das gehört.
Item
Möglicherweise sollte das aber auch in den OnItemPreDraw Event (setzen der Canvas-Font-Farbe) |
AW: im Teltreestringgrid die Textfarbe einer Spalte ändern
mit textcolor färbt er alles rot aber nicht unter itemdraw itemdraw ist wohl für den treeview gedacht
|
AW: im Teltreestringgrid die Textfarbe einer Spalte ändern
Erstell mal nur das OnItemPreDraw Event und setze dort
Delphi-Quellcode:
und schau, ob jetzt alles in rot gezeichnet wird.
Surface.Font.Color := clRed
|
AW: im Teltreestringgrid die Textfarbe einer Spalte ändern
Dieses Event bezieht sich auf tree souface kommt nicht vor
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:21 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