Einzelnen Beitrag anzeigen

Viktorii

Registriert seit: 19. Jul 2007
358 Beiträge
 
#1

(VirtualTreeView) Schriftfarbe einer Zeile (o. Zelle) ändern

  Alt 2. Okt 2008, 14:03
Hallo zusammen.

Ich möchte bei meinem VirtualTreeView welches ich als ListView-Ersatz verwende die Schriftfarbe einer Zeile, oder besser noch, einer Zelle ändern.
Ich habe es geschafft die Hintergrundfarbe zu ändern:

Delphi-Quellcode:
procedure TMainForm.VSTBeforeItemErase(Sender: TBaseVirtualTree; TargetCanvas: TCanvas; Node: PVirtualNode;
  ItemRect: TRect; var Color: TColor; var EraseAction: TItemEraseAction);
var
  pNodeData : PTreeData;

begin
  pNodeData := FVirtualStringTreeBFInfo.GetNodeData(Node);

  with Canvas do
  begin
    if pNodeData.Changed then
      Color := CHANGEDCOLOR;

    if pNodeData.Conflict then
      Color := CONFLICTCOLOR;

    EraseAction := eaColor;
  end;
Leider ändert sich so die gesamte Textfarbe meines Fensters:

Delphi-Quellcode:
procedure TMainForm.VSTBeforeItemErase(Sender: TBaseVirtualTree; TargetCanvas: TCanvas; Node: PVirtualNode;
  ItemRect: TRect; var Color: TColor; var EraseAction: TItemEraseAction);
var
  pNodeData : PTreeData;

begin
  pNodeData := FVirtualStringTreeBFInfo.GetNodeData(Node);

  with Font do
  begin
    if pNodeData.Changed then
      Color := CHANGEDCOLOR;

    if pNodeData.Conflict then
      Color := CONFLICTCOLOR;

    EraseAction := eaColor;
  end;

Und so ändert sich garnichts:

Delphi-Quellcode:
procedure TMainForm.VSTBeforeItemErase(Sender: TBaseVirtualTree; TargetCanvas: TCanvas; Node: PVirtualNode;
  ItemRect: TRect; var Color: TColor; var EraseAction: TItemEraseAction);
var
  pNodeData : PTreeData;

begin
  pNodeData := FVirtualStringTreeBFInfo.GetNodeData(Node);

  with Canvas.Font do
  begin
    if pNodeData.Changed then
      Color := CHANGEDCOLOR;

    if pNodeData.Conflict then
      Color := CONFLICTCOLOR;

    EraseAction := eaColor;
  end;
Gibt es eine Möglichkeit das zu erreichen was ich möchte?

Vielen Dank

P.S.: manchmal lese ich VirtualTreeView und manchmal VirtualStringTree. Wo liegt da der Unterschied?
  Mit Zitat antworten Zitat