Announcement

Collapse
No announcement yet.

TVirtualStringTree: highlighten Node Text

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • TVirtualStringTree: highlighten Node Text

    Hallo zusammen,

    im möchte den Text eines Nodes farblich hervorheben - nicht die ganze Zelle oder Zeile.
    Dazu habe ich folgenden Code "erarbeitet"

    Code:
    procedure TfrmQMIDI.vstQMIDIPaintText(Sender: TBaseVirtualTree; 
      const TargetCanvas: TCanvas; Node: PVirtualNode; Column: TColumnIndex; 
      TextType: TVSTTextType); 
    var Rect : TRect; 
      vstNode : PVirtualNode; 
      NdData: pVstData; 
    begin 
      NdData := vstQMIDI.GetNodeData(Node); 
      case Column of 
        0 :  
        begin 
          if NdData^.NdAusgabe <> '' then begin 
            Rect := vstQMIDI.GetDisplayRect(node,Column,True); 
            TargetCanvas.Brush.Color := clFuchsia; 
            TargetCanvas.FillRect(Rect); 
          end; 
       end; 
    end;
    Leider schmeißt die Verarbeitung eine mordsmäßige Exception.
    Hat einer von euch dasselbe Problem gehabt? Wie kann die Texte der Nodes highlighten?
    Besonders dankbar wäre ich für ein Beispiel

    Merci!

  • #2
    Hallo,

    prinzipiell:
    Ich habe festgestellt das in diesen Routinen Node auch nil sein kann. Einfach vorher abfragen und in dem Fall ignorieren.

    Hervorhebungen:
    - OnPaintText: hier nur die Schrift ändern: TargetCanvas.Font...
    - OnBeforeCellPaint: Hier den Hintergrund ändern, in etwa
    TargetCanvas.Brush.Color:=clFuchsia;
    TargetCanvas.FillRect(CellRect);

    Gruß Matthias

    Comment

    Working...
    X