Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Treeview1 markierte Zeile (DblClick) in Edit1 kopieren (https://www.delphipraxis.net/174769-treeview1-markierte-zeile-dblclick-edit1-kopieren.html)

Alterauge 8. Mai 2013 20:46


Treeview1 markierte Zeile (DblClick) in Edit1 kopieren
 
Hallo,

möchte gerne aus einem Treeview1 (markierte Zeile) durch einen doppel Click,
in ein Edit1 kopieren.

Möchte aber nur die ersten 7 Zeichen in das Edit1 kopieren!

so geht es nicht! :-)
Delphi-Quellcode:
if Treeview1.ItemIndex <> -1 then
 Edit1.Text:= Copy (Treeview1.Items[Treeview1.Itemindex], 1, Edit1.MaxLength);
 Treeview1.ItemIndex:=-1;

Aviator 8. Mai 2013 20:56

AW: Treeview1 markierte Zeile (DblClick) in Edit1 kopieren
 
Wie wäre es mit:

Delphi-Quellcode:
TreeView1.Items[TreeView1.Selected.Index].Text
Versuchs mal. ;)

Alterauge 8. Mai 2013 21:06

AW: Treeview1 markierte Zeile (DblClick) in Edit1 kopieren
 
Hey,
habe es so versucht:

Delphi-Quellcode:
      Edit1.Text:=TreeView1.Items[TreeView1.Selected.Index].Text;

Es wird jetzt auch was an Edit1 übergeben!
Aber nicht was ich markiert habe?

Volker Z. 8. Mai 2013 21:10

AW: Treeview1 markierte Zeile (DblClick) in Edit1 kopieren
 
Hallo,

versuche es mal damit:
Delphi-Quellcode:
if Assigned (TreeView1.Selected) then
  Edit1.Text := Copy (TreeView1.Selected.Text, 1, Edit1.MaxLength)
Gruß

Aviator 8. Mai 2013 21:12

AW: Treeview1 markierte Zeile (DblClick) in Edit1 kopieren
 
Also bei mir wird mit der Zeile, die du hier gepostet hast, genau der Text der ausgewählten TreeNode in das Editfeld geschrieben. Diese Zeile einfach in das OnDblClick Event des TreeViews einfügen und es sollte funktionieren. Und wenn nur die ersten 7 Zeichen kopiert werden sollen, dann einfach noch mit Delphi-Referenz durchsuchenCopy() umklammern.

Delphi-Quellcode:
Edit1.Text := Copy(TreeView1.Items[TreeView1.Selected.Index].Text, 1, 7);

Alterauge 8. Mai 2013 21:23

AW: Treeview1 markierte Zeile (DblClick) in Edit1 kopieren
 
Hey,
es wird nicht die akuelle Zeile, sondern die Folgende Zeile kopiert?

Aviator 8. Mai 2013 21:29

AW: Treeview1 markierte Zeile (DblClick) in Edit1 kopieren
 
Wurde der Baum mit
Delphi-Quellcode:
TreeView1.SaveToFile()
gespeichert oder hast du die Datei selbst erstellt? Wenn letzteres der Fall ist, dann zähl mal die Leerzeichen vor den einzelnen Zeilen. Nicht das dort ein Fehler vorliegt.

Folgendes steht in der Hilfe zu LoadFromFile():
Zitat:

Mit LoadFromFile können Sie in einer Datei gespeicherte Daten in ein Baumdiagramm laden. FileName sollte auf eine Datei verweisen, die mit der Methode SaveToFile gespeichert wurde. Baumdiagrammdateien sind Textdateien, die die Eigenschaft Text aller Knoten des Baumdiagramms zeilenweise auflisten. Jedem Textwert sind Leerzeichen vorangestellt, die die jeweilige Verschachtelungstiefe angeben.

Anmerkung: Baumdiagrammdateien enthalten nur den Text der Baumknoten und keine mit den Knoten verbundenen Daten.

Alterauge 8. Mai 2013 21:38

AW: Treeview1 markierte Zeile (DblClick) in Edit1 kopieren
 
Habe die Datei selbst erstellt(txt-file)!
Hier ein Beispiel:

Vorname
-Klaus
-Dierter
Nachname
-Müller
-Schmidt

Der Strich stellt ein Leerzeichen da!
Was muss ich änder?

Volker Z. 8. Mai 2013 21:40

AW: Treeview1 markierte Zeile (DblClick) in Edit1 kopieren
 
Hallo,

da Deine Treeview Knoten nicht nur auf der ersten Ebene haben, funktioniert es nicht mit der Eigenschaft TTreeNode.Index.

Aus der OH:
Zitat:

Mit Index legen Sie die Position des Knotens relativ zu den gleichgeordneten Knoten fest. Der erste untergeordnete Knoten eines übergeordneten Knotens hat den Index 0, alle folgenden untergordneten Knoten werden fortlaufend numeriert.
Wenn, dann funktionert es mit der Eigenschaft AbsoluteIndex

Aus der OH:
Zitat:

Mit AbsoluteIndex wird die absolute Position eines Knotens in einem Baumknoten-Objekt übergeben. Der erste Knoten eines Baumknoten-Objekts hat den Indexwert 0, der erste Unterknoten den Wert 1 usw. Verfügt ein Knoten über untergeordnete Objekte, so ist sein Index stets um den Wert 1 kleiner als der des ersten untergeordneten Objekts.
Delphi-Quellcode:
if Assigned (TreeView1.Selected) then
  Edit1.Text := Copy (TreeView1.Items [TreeView1.Selected.AbsoluteIndex].Text, 1, Edit1.MaxLength)
Gruß

Aviator 8. Mai 2013 21:42

AW: Treeview1 markierte Zeile (DblClick) in Edit1 kopieren
 
Sieht für mich jetzt nicht falsch aus. Erstell dir doch zum Test mal im Designer die einzelnen Nodes und lass es dir mal mit
Delphi-Quellcode:
SaveToFile()
als Datei ausgeben. Vergleiche diese Dateien danach einmal. Oder versuch diesen Doppelklick-Teil nocheinmal mit der zuvor gespeicherten Datei die du dann beim Programmstart wieder eingelesen hast.

Edit:
Stimmt Volker. So weit habe ich jetzt gerade nicht gedacht. Mit Untergruppen muss man natürlich AbsoluteIndex benutzen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:35 Uhr.
Seite 1 von 2  1 2      

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