Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   im Teltreestringgrid die Textfarbe einer Spalte ändern (https://www.delphipraxis.net/173901-im-teltreestringgrid-die-textfarbe-einer-spalte-aendern.html)

Natcree 23. Mär 2013 10:42

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...

Sir Rufo 23. Mär 2013 10:48

AW: im Teltreestringgrid die Textfarbe einer Spalte ändern
 
Schau dir doch einfach mal alle Events an wo Draw vorkommt :roll:

Aviator 23. Mär 2013 10:48

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.

Natcree 23. Mär 2013 10:51

AW: im Teltreestringgrid die Textfarbe einer Spalte ändern
 
Onitemdraw und postdraw habe ich shon versucht aber irgendwie ändert es nicht an der Text farbe

Natcree 23. Mär 2013 11:00

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;

Natcree 23. Mär 2013 11:40

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?

Sir Rufo 23. Mär 2013 11:44

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:
procedure TForm1.ElTreeStringGrid1ItemDraw(Sender: TObject;
  Item: TElTreeItem; Surface: TCanvas; R: TRect; SectionIndex: Integer);
begin
  Surface.Font.Color:= clred;
end;
Wird jetzt alles rot, dann kannst du dich daran machen über das Argument
Delphi-Quellcode:
Item
herauszufinden, zu welcher Spalte das gehört.

Möglicherweise sollte das aber auch in den OnItemPreDraw Event (setzen der Canvas-Font-Farbe)

Natcree 23. Mär 2013 11:56

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

Sir Rufo 23. Mär 2013 12:01

AW: im Teltreestringgrid die Textfarbe einer Spalte ändern
 
Erstell mal nur das OnItemPreDraw Event und setze dort
Delphi-Quellcode:
Surface.Font.Color := clRed
und schau, ob jetzt alles in rot gezeichnet wird.

Natcree 23. Mär 2013 12:14

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.
Seite 1 von 2  1 2      

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