Einzelnen Beitrag anzeigen

Perlsau
(Gast)

n/a Beiträge
 
#2

AW: Textausrichtung mal anders

  Alt 27. Okt 2015, 19:53
In deinem VirtualStringTree existiet nur eine Spalte. Benötigt man verschiedene Ausrichtungen, verwendet man entsprechend mehr Spalten. Für dich würde eine zusätzliche Spalte genügen. Zusätzlich solltest du dir einen NodeData-Typen deklarieren:
Delphi-Quellcode:
TYPE
  PNodeData = ^TNodeData;
  TNodeData = Record
               Titel : String[100];
               Id : Integer;
              End;
CONST
  SizeNodeData = SizeOf(TNodeData);
Bei der Zuweisung der Node-Daten weist du dem Titel das zu, was bei dir vordem Data.Entry.Caption hieß, der Id die erzeugte Id. Bei mir (ich lese Branchen und Zusatzinfos aus einer Tabelle ein) sieht das so aus:
Delphi-Quellcode:
...
  BranchenStart := Sender.AddChild(Sender.RootNode);
  vData := Sender.GetNodeData(BranchenStart);
  vData.Id := Id;
  vData.Titel := STR_200(Titel);
  Qset_Branchen.Next;
...
In der GetText-Procedure fragst du dann nicht nach dem Level, sondern nach der Spalte:
Delphi-Quellcode:
procedure TFormMain.VSTGetText(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType;
  var CellText: string);
Var
  vData : PNodeData;

begin
  vData := Sender.GetNodeData(Node);

  Case Column Of
  0 : CellText := String(vData.Titel);
  1 : CellText := String(vData.Id);
  End;
end;
Die Ausrichtung der jeweiligen Spalten nimmst du im ObjectInspector vor.

Ungetestet, da aus einem meiner Projekte herauskopiert ...
Miniaturansicht angehängter Grafiken
vst2spalt.jpg  
  Mit Zitat antworten Zitat