AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi VirtualStringTree - Schriftfarbe der jeweiligen Zelle?
Thema durchsuchen
Ansicht
Themen-Optionen

VirtualStringTree - Schriftfarbe der jeweiligen Zelle?

Ein Thema von Piro · begonnen am 23. Jun 2009 · letzter Beitrag vom 23. Jun 2009
Antwort Antwort
Benutzerbild von Piro
Piro

Registriert seit: 14. Jul 2003
Ort: Flintbek
810 Beiträge
 
Delphi XE2 Professional
 
#1

VirtualStringTree - Schriftfarbe der jeweiligen Zelle?

  Alt 23. Jun 2009, 09:51
Guten Tag,

ich würde gerne mit einer For-Schleife durch das VST laufen und alle Datensätze kontrollieren, wie die Schriftfarbe der Werte in einer bestimmten Spalte ist.

Irgendwie fehlt mir der Ansatz. Die Daten des VST liegen in einer Class (Anlehnung an das Beispiel hier im Forum).

Beispielcode:
Delphi-Quellcode:
...
var
 i : Integer;
 curNode : PVirtualNode;
 TimeOverviewDate : TOTimeOverviewData;
...
with vst_zeiterfassung do
 begin
   curNode := GetFirst;
   for i := 0 to RootNodeCount - 1 do
   begin
     TimeOverviewDate := TOTimeOverviewData(vst_zeiterfassung.GetNodeData(curNode)^);

     // Hier müßte jetzt irgendwie die Abfrage kommen, ob der Zelleninhalt (=Schriftfarbe) Rot oder Grün ist. Aber wie???

     curNode := GetNext(curNode);
   end;
end;
Vielen Dank im voraus.
Gruß, Sven
  Mit Zitat antworten Zitat
Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#2

Re: VirtualStringTree - Schriftfarbe der jeweiligen Zelle?

  Alt 23. Jun 2009, 10:02
Hi!

Ich behaupte jetzt mal ganz frech, das dein Ansatz verkehrtherum ist.

Normalerweise geben die Daten vor, wie die Schriftfarbe ist. D.h. irgendwas in dem jeweiligen TOTimeOverviewData-Objekt sagt: zeig mich rot bzw. grün an.
Das würde man dann beim OnBeforeCellDraw (so in etwa) auswerten und die Farbe entsprechend setzen.
Das würde für dich bedeuten, das du die Auswertung nicht nach der Farbe der Zelle machst, sondern nach dem Inhalt der Daten.

Das wäre imho eine saubere Lösung.
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat
Benutzerbild von sh17
sh17

Registriert seit: 26. Okt 2005
Ort: Radebeul
1.594 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: VirtualStringTree - Schriftfarbe der jeweiligen Zelle?

  Alt 23. Jun 2009, 10:18
Ich würde auch sagen, dass man das so sowieso nicht erreichen kann. Das Zeichnen der Zellen passiert ja OnTheFly. D.h. die Schriftfarbe und so weiter wird nicht komplett in allen Nodes hinterlegt sondern direkt vorm Zeichnen festgelegt und ggf. mit OnBeforePaint usw. angepasst. Die Infos musst Du Dir also aus den Daten holen.

Die Schleife wäre so besser:

Delphi-Quellcode:
with vst_zeiterfassung do
begin
   curNode := GetFirst;
   while CurNode <> nil do
   begin
     TimeOverviewDate := TOTimeOverviewData(vst_zeiterfassung.GetNodeData(curNode)^);

     if TimeOverviewDate.IsRot then ...

     curNode := GetNext(curNode);
   end;
end;
Sven Harazim
--
  Mit Zitat antworten Zitat
Benutzerbild von Piro
Piro

Registriert seit: 14. Jul 2003
Ort: Flintbek
810 Beiträge
 
Delphi XE2 Professional
 
#4

Re: VirtualStringTree - Schriftfarbe der jeweiligen Zelle?

  Alt 23. Jun 2009, 10:19
Danke,

aber das passt nicht ganz vom Ablauf mit meinem Programm. Die Daten sind im VST und erst nach betätigen eines Button werden die Daten berechnet. So zu sagen eine Liste mit Zeiten (Rot = Minus und Grüm = Plus).

Am Ende soll dann die Gesamtsumme kommen. Das muss doch irgndwie möglich sein.
  Mit Zitat antworten Zitat
Benutzerbild von sh17
sh17

Registriert seit: 26. Okt 2005
Ort: Radebeul
1.594 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: VirtualStringTree - Schriftfarbe der jeweiligen Zelle?

  Alt 23. Jun 2009, 10:26
Na dann musst Du Dein Record um die entsprechende Eigenschaft erweitern. Wenn Du den Knoten mit den Daten hinzufügst, wirst Du doch wissen, ob + oder -. bzw. beim Ändern auch.
Sven Harazim
--
  Mit Zitat antworten Zitat
Benutzerbild von Piro
Piro

Registriert seit: 14. Jul 2003
Ort: Flintbek
810 Beiträge
 
Delphi XE2 Professional
 
#6

Re: VirtualStringTree - Schriftfarbe der jeweiligen Zelle?

  Alt 23. Jun 2009, 12:17
Danke für eure Ideen.

Ich habe mir in mein Record ein property gemacht, welches den erforderlichen Wert aufnimmt. Jetzt klappt alles bestens.

Schönen Tag noch.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:00 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