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
Seite 1 von 3  1 23      
MasterTobi

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

Nochmal VST - Node einfärben

  Alt 26. Sep 2011, 13:14
Hallo,
ich beschäftige mich nun auch mal mit VST da der normale Treeview das nicht konnte was ich wollte

Mein Problem ist nun das wenn etwas bestimmtes passiert, das sich die Farbe des Node des VST ändern soll.

Delphi-Quellcode:
begin
       n := virtualstringtree1.GetFirst;
      while assigned(n) do
       begin
       if assigned(n) then
       begin
        data:=virtualstringtree1.GetNodeData(n);
        if data^.FCaption='hiereindummertextthen
        begin
// hier sollte sich dann von n die Farbe ändern
        break;
        end;
das problem ist nur es gibt ja nicht direkt sowas wie "n.color".
auch aftercellpaint oder befor oder PaintText nützt ja nix da es ja schon da ist

weiß nochjemand rat?


mfg
MFG
Tobi
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

AW: Nochmal VST - Node einfärben

  Alt 26. Sep 2011, 13:24
Da du das Zeichnen ja selbst übernimmst (oder?) müsstest du ein neu-Zeichnen auslösen. Bei normalen Controls kann dies zum Beispile über Invalidate ausgelöst werden.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: Nochmal VST - Node einfärben

  Alt 26. Sep 2011, 13:26
Meinst Du so etwas? http://stackoverflow.com/questions/3...ring-tree-node
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
MasterTobi

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

AW: Nochmal VST - Node einfärben

  Alt 26. Sep 2011, 13:28
d.h. also icch müsste ja das vorhandene löschen, genau an der stelle neu zeichnen und einfärben oder? muss aber auch bedenken wenn ich dann auf das node drück das die farbe wieder schwarz wird.
ich zeichne einmal das vst beim programmstart.


mfg
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, 13:44
Hallo,

das Ereignis das Du suchst heist OnBeforeCellPaint. In diesem Ereignis kannst Du den Colum-Hintergrund ändern.
Delphi-Quellcode:
procedure TForm1.vtBeforeCellPaint(
  Sender: TBaseVirtualTree; TargetCanvas: TCanvas; Node: PVirtualNode;
  Column: TColumnIndex; CellPaintMode: TVTCellPaintMode; CellRect: TRect;
  var ContentRect: TRect);
begin
  with TargetCanvas do
  begin
    if Odd(Node^.Index) then Brush.Color:=clLightGray
      else Brush.Color:=clWindow;
    FillRect(CellRect);
  end; // with
end;
Obiges Beispiel färbt in einem Tree jede 2. Zeile in einer alternierenden Farbe.
  Mit Zitat antworten Zitat
MasterTobi

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

AW: Nochmal VST - Node einfärben

  Alt 26. Sep 2011, 13:53
d.h. bevor das node / column gezeichnet wird, male es an aber ich suche ja etwas wenn das node/die column schon vorhanden ist oder bin ich atm blöd ?!
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
 
#7

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
 
#8

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
 
#9

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
 
#10

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
Antwort Antwort
Seite 1 von 3  1 23      


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 02:38 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