Guten Morgen werte Delphianer,
ich stehe mal wieder auf dem Schlauch und vor einem Problem. Vielleicht kennen ja einige von euch das
XML Notepad von Microsoft, dort ist es so, dass wenn ich auf einen Node klicke, dann wird er mir rechts auf das Memofeld in DERSELBEN Zeile übertragen. Bei mir ist es momentan eher Wirrwar und erscheint oben im Memofeld. Wie gesagt möchte ich es derselben Zeile. Vielleicht soll er dann rechts auch automatisch mitscrollen, wenn ich links viel weiter unten ein Node angeklickt habe und drüber eine Menge Nodes sind.
Gibt's eventuell eine eleganter Lösung, als die das im Notepad gemacht haben? Dort wird Links jeder Node inkl. Attributen einzeln aufgedröselt?!
Vielen Dank schon mal vorab
Code:
procedure TXMLToMemo.SetTransferSelectedNodes(AVT: TcxVirtualTreeList;
AMemo: TcxMemo);
var
ParentNode,ChildNode: TcxTreeListNode;
i: Integer;
begin
AMemo.Clear;
ParentNode := AVT.Selections[0];
//AVT.CopySelectedToClipboard(True);
while ParentNode <> nil do
begin
if ParentNode <> nil then
begin
AMemo.Lines.Add(ParentNode.Texts[0]);
ChildNode := ParentNode.GetFirstChild;
{for i := 0 to AVT.SelectionCount - 1 do
begin
if not ParentNode.Expanded or ParentNode.Selected then
AMemo.Lines.Add('');
end;} // Funktioniert nicht so
while ChildNode <> nil do
begin
AMemo.Lines.Add(ChildNode.Texts[0]);
{for i := 0 to AVT.SelectionCount - 1 do
begin
if not ChildNode.Expanded or ChildNode.Selected then
AMemo.Lines.Add('');
end;} // Funktioniert nicht so
if ChildNode.HasChildren then
begin
ParentNode := ChildNode.GetFirstChild;
break;
end;
ChildNode := ChildNode.GetNextSibling;
end;
end;
if ChildNode = nil then
begin
if ParentNode.GetNextSibling <> nil then
ParentNode := ParentNode.GetNextSibling
else
begin
while ParentNode.GetNextSibling = nil do
begin
if ParentNode.Parent <> nil then
ParentNode := ParentNode.Parent
else
break;
end;
if ParentNode <> nil then
ParentNode := ParentNode.GetNextSibling;
end;
end;
end;
end;