AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Strings des letzten TreeView Knoten mit allen Children in ein Richedit schreiben
Thema durchsuchen
Ansicht
Themen-Optionen

Strings des letzten TreeView Knoten mit allen Children in ein Richedit schreiben

Ein Thema von Ajintaro · begonnen am 30. Mai 2014 · letzter Beitrag vom 2. Jun 2014
Antwort Antwort
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
10.113 Beiträge
 
Delphi 12 Athens
 
#1

AW: Strings des letzten TreeView Knoten mit allen Children in ein Richedit schreiben

  Alt 2. Jun 2014, 07:29
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;
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#2

AW: Strings des letzten TreeView Knoten mit allen Children in ein Richedit schreiben

  Alt 2. Jun 2014, 09:56
Also ich weiß nicht... Eine Methode 'NodesToRichEdit' in 'NodesToString' umbenennen? Was ist denn, wenn die Intention die war, hier noch Formatierungen reinzupacken? Das geht bekanntermaßen mit TStrings nicht so gut (außer, man schreibt Raw-RTF rein).

Es wird ja vom Fragesteller nicht umsonst TRichEdit verwendet (und nicht TMemo).

Und *noch* allgemeingültiger wird das nicht: Das ist eine Methode um Baumknoten in ein *RichEdit* zu packen. Abhängigkeiten: Baum(knoten) + RichEdit. Wenn ich dann zwei Parameter vom Typ 'RichEdit' und 'Baum(Knoten)' habe. Wo sind denn da noch innere Abhängigkeiten?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.669 Beiträge
 
Delphi 12 Athens
 
#3

AW: Strings des letzten TreeView Knoten mit allen Children in ein Richedit schreiben

  Alt 2. Jun 2014, 09:59
Schau Dir doch den Ausgangscode einfach an, da wird nichts formatiert, von daher kann man getrost auf TStrings umstellen, und das ist sehr wohl allgemeingültiger.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.745 Beiträge
 
Delphi 12 Athens
 
#4

AW: Strings des letzten TreeView Knoten mit allen Children in ein Richedit schreiben

  Alt 2. Jun 2014, 10:01
Und *noch* allgemeingültiger wird das nicht:
TCustomRichEdit ... dann könnte es z.B. auch mit den RichEdits anderer Komponentenhersteller funktionieren


Ansonsten können wir auch einfach auf Ajintaro warten und sehen dann, ob er vielleicht doch noch mehr geplant hat, als im Post ersichtlich.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#5

AW: Strings des letzten TreeView Knoten mit allen Children in ein Richedit schreiben

  Alt 2. Jun 2014, 10:02
Und *noch* allgemeingültiger wird das nicht:
TCustomRichEdit ... dann könnte es z.B. auch mit den RichEdits anderer Komponentenhersteller funktionieren
Yo. Akzeptiert.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
10.113 Beiträge
 
Delphi 12 Athens
 
#6

AW: Strings des letzten TreeView Knoten mit allen Children in ein Richedit schreiben

  Alt 2. Jun 2014, 10:18
Also ich weiß nicht... Eine Methode 'NodesToRichEdit' in 'NodesToString' umbenennen? Was ist denn, wenn die Intention die war, hier noch Formatierungen reinzupacken?
Was an dem konditionalen Teil meines Posts war denn missverständlich?
Wenn es nämlich nur darum geht das Ergebnis in die Zwischenablage zu packen, ...
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von Ajintaro
Ajintaro

Registriert seit: 20. Okt 2004
Ort: Sankt Augustin
138 Beiträge
 
Delphi XE6 Starter
 
#7

AW: Strings des letzten TreeView Knoten mit allen Children in ein Richedit schreiben

  Alt 2. Jun 2014, 11:03
Hi DP !

Vielen Dank für die Antworten. Um das ganze mit dem RichEdit mal aufzulösen: ich benutze in der Tat Formatierungen, welche per Copy/Paste mit Übertragen werden. Dazu nutze ich diese Prozedur:

Delphi-Quellcode:
{++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//Richedit message
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}

procedure AddMessage(re: TRichEdit; const betreff, msg: string);
begin
  re.SelStart := MaxInt;
  re.SelAttributes.Color := clNavy ;
  re.SelAttributes.Style := [fsBold];
  re.SelText := '___________________________________________________________'+ sLineBreak;
  re.SelAttributes.Color := clNavy ;
  re.SelAttributes.Style := [fsBold];
  re.SelText := 'Version '+vers+ ' <yourname>, '+DateTimeToStr(now)+ sLineBreak;
  re.SelAttributes.Color := clGreen;
  re.SelAttributes.Style := [fsBold, fsItalic];
  re.SelText := betreff+ sLineBreak;
  re.SelAttributes.Color := clBlack;
  re.SelText := msg + sLineBreak;
  re.SelAttributes.Color := clBlack;
end;
Aber wirklich ganz toll ist: function GetLastRootNode ! Damit kann ich wirklich die letzte RootNode ansprechen!
Jaimy
DAoC 2.0 -> Camelot Unchained !
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:51 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz