Besser ist es gleich nur Richedit.Lines als Parameter vom Typ TStrings zu übergeben. Dann kann man da auch eine TStringList reinpacken.
Wenn es nämlich nur darum geht das Ergebnis in die Zwischenablage zu packen, macht es absolut keinen Sinn dafür ein TRichEdit als visuelle Komponente zu benutzen. Das ist
ausschließlich zur Eingabe und Anzeige da, nicht für die Datenverarbeitung...
Also:
Delphi-Quellcode:
procedure TFDetail.NodesToStrings(const ATarget: TStrings; const ANode: TTreeNode);
var
CurrentNode: TTreeNode;
begin
CurrentNode := ANode;
while Assigned(CurrentNode) do
begin
ATarget.Add(CurrentNode.Text);
NodesToStrings(ATarget, CurrentNode.getFirstChild);
CurrentNode := CurrentNode.getNextSibling;
end
end;
procedure TFDetail.copy1Click(Sender: TObject);
var
LastRootNode: TTreeNode;
TargetStringList: TStringList;
begin
LastRootNode := GetLastRootNode(TreeView1);
if Assigned(LastRootNode) then
begin
TargetStringList := TStringList.Create;
try
TargetStringList.Add(LastRootNode.Text);
NodesToStrings(TargetStringList, LastRootNode.getFirstChild);
Clipboard.AsText := TargetStringList.Text;
finally
TargetStringList.Free;
end;
end
end;