AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Nochmal VST - Node einfärben

Ein Thema von MasterTobi · begonnen am 26. Sep 2011 · letzter Beitrag vom 27. Sep 2011
Antwort Antwort
Benutzerbild von Gollum
Gollum

Registriert seit: 14. Jan 2003
Ort: Boxberg
456 Beiträge
 
Delphi 10.1 Berlin Professional
 
#1

AW: Nochmal VST - Node einfärben

  Alt 26. Sep 2011, 13:55
Hallo,

das Ereignis wird ausgelöst, wenn Die Spalte/Zelle gezeichnet wird.
Dies bedeutet, das Ereignis wird nur gefeuert, wenn die Spalte existiert und sie auch Daten enthält, die dargestellt werden sollen.
  Mit Zitat antworten Zitat
CCRDude

Registriert seit: 9. Jun 2011
678 Beiträge
 
FreePascal / Lazarus
 
#2

AW: Nochmal VST - Node einfärben

  Alt 26. Sep 2011, 14:07
Zum Verständnis: die Ansicht ist nicht "stabil" - wischt Du mit der Maus oder einem anderen Fenster darüber oder rufst ein Invalidate/Refresh etc. auf, wird neu gezeichnet.

Es wird also keinesfalls nur beim Programmstart gezeichnet
  Mit Zitat antworten Zitat
MasterTobi

Registriert seit: 29. Apr 2007
212 Beiträge
 
#3

AW: Nochmal VST - Node einfärben

  Alt 26. Sep 2011, 14:13
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahh hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh hhhhhhhhhhhhhhhhhhhhhhhhh

gut zu wissen erstma vielen dank das bringt mich schonma weiter hehe
MFG
Tobi
  Mit Zitat antworten Zitat
MasterTobi

Registriert seit: 29. Apr 2007
212 Beiträge
 
#4

AW: Nochmal VST - Node einfärben

  Alt 26. Sep 2011, 14:33
so verstehe nu

was ne geburt,
na gut nu hab ich mal das bsp vonGollum genommen. muss aber jetzt nur die node färben wo sich die caption geändert hat.
muss ich also die node in einer globalen variable übergeben ?

wil er ändert immer den ganzen baum
MFG
Tobi
  Mit Zitat antworten Zitat
Benutzerbild von Gollum
Gollum

Registriert seit: 14. Jan 2003
Ort: Boxberg
456 Beiträge
 
Delphi 10.1 Berlin Professional
 
#5

AW: Nochmal VST - Node einfärben

  Alt 26. Sep 2011, 15:24
Hallo,

der Knoten (Node) und die Spalte (Column) die gezeichnet werden sollen, werden Dir doch im Ereignis übergeben.

Ich hoffe einmal, Du weist dann, wie Du auf Deine im VT gespeicherten Infos zugreifen kannst.
  Mit Zitat antworten Zitat
MasterTobi

Registriert seit: 29. Apr 2007
212 Beiträge
 
#6

AW: Nochmal VST - Node einfärben

  Alt 26. Sep 2011, 15:46
Hallo ,

meine strucktur ist ja nur

node
+'irgendwas'
---- 'irgendeine nummer'
+'irgendwas2'
---- 'irgendeine nummer2'
+'irgendwas3'
---- 'irgendeine nummer3'

so wenn nun jetzt

Delphi-Quellcode:
       n := virtualstringtree1.GetFirst;
      while assigned(n) do
       begin
       if assigned(n) then
       begin
        data:=virtualstringtree1.GetNodeData(n);
        if data^.FColumn1='irgendeinenummerthen
        begin
        found:=1;
        foundednode:=n;
        virtualstringtree1.Refresh;
        break;
        end;
        n:=virtualstringtree1.GetNext(n);
       end;
if data^.FColumn1='irgendeinenummer' then stimmig ist, sprich er fragt ab ob das subnode die nummer hat die er bekommen hat(in der abfrage)

dann
Delphi-Quellcode:
procedure TForm1.VirtualStringTree1BeforeCellPaint(
  Sender: TBaseVirtualTree; TargetCanvas: TCanvas; Node: PVirtualNode;
  Column: TColumnIndex; CellRect: TRect);
  var ContentRect: TRect;
  var d:ptreedata;
begin
   with TargetCanvas do
   begin
   d:=virtualstringtree1.GetNodeData(foundednode);
   if found <>1 then exit;
     if d.fColumn1='irgendeinenummerthen targetcanvas.Font.Color:=clred;
     FillRect(CellRect);
   end; // with
end;
sollte es doch funktionieren ? oder nicht. ich übergeb ihm ja mit d:=virtualstringtree1.GetNodeData(foundednode); die daten von der node die er unter foundednode:=n; gesaved hat.

hm ....
MFG
Tobi
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.656 Beiträge
 
Delphi 12 Athens
 
#7

AW: Nochmal VST - Node einfärben

  Alt 26. Sep 2011, 15:49
Wieso fragst Du nicht direkt die Daten der übergebenen Node ab?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  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:26 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 by Thomas Breitkreuz