Einzelnen Beitrag anzeigen

ernschd

Registriert seit: 16. Jan 2008
166 Beiträge
 
Delphi XE8 Professional
 
#3

AW: VirtualStringTree: wie kann ich nur Children von einem Parent anzeigen lassen?

  Alt 15. Aug 2011, 16:00
Ich habe es vorerst mal so gelöst (in diesem Fall zur Anzeige des Child-Elements von Parent3):

Delphi-Quellcode:
procedure TForm1.VSTGetText(Sender: TBaseVirtualTree; Node: PVirtualNode;
  Column: TColumnIndex; TextType: TVSTTextType; var CellText: WideString);
var Data : PTData;
    fChild: PVirtualNode;
    a, i : Integer;
begin
    a := Node.Index;
    CellText := '';

    // hier meine gewünschte Position
    if Node.Parent.Index <> 3 then exit;

    if Sender.GetNodeLevel(Node) = 1 then begin
        i := 0;

        // Child-Elemente durchgehen
        fChild := vst.GetFirstChild(Node.Parent);
        repeat
            // Daten anzeigen
            Data := VST.GetNodeData(fChild);
            case Column of
                0: CellText := Data^.Text;
                ...
            end;
            if i = a then break;
            fchild:= vst.GetNextSibling(fchild);
            inc(i);
        until not assigned(fChild);
    end;
end;
Funktioniert allerdings nicht richtig, da die leeren Spalten trotzdem angezeigt werden.
Ist die GetText-Prozedur überhaupt die richtige Stelle dafür, oder muss ich die Daten vorher schon irgendwie zurechtbasteln?
  Mit Zitat antworten Zitat