Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Doppelte Einträge in einem TreeView vermeiden (https://www.delphipraxis.net/8197-doppelte-eintraege-einem-treeview-vermeiden.html)

cYaONE 30. Aug 2003 15:40


Doppelte Einträge in einem TreeView vermeiden
 
Servus,

wisst ihr zufällig wie ich bei einem TreeView doppelte Einträge vermeiden kann?

Beispiel:

statt

Code:
+- testbaum
 |
 +- abc
 ||
 |+- test 1
 | 
 +- abc
  |
  +- test 2
möchte ich es so:

Code:
+- testbaum
 |
 +- abc
 ||
 |+- test 1
 |+- test 2

Christian Seehase 30. Aug 2003 18:08

Re: Doppelte Einträge in einem TreeView vermeiden
 
Moin cYaONE,

ich weiss jetzt nicht, was der Tree darstellen soll, und wie Du ihn aufbaust, aber Du könnest es eventuell auf diesem Wege machen:
(nicht näher überlegter Schnellschuss ;-))

Durch die Items durchgehen, ob der Text schon enthalten ist.
Ist das der Fall, prüfen, ob der Level des Items der gleiche ist, wie der dessen, das Du hinzufügen willst.
Stimmt auch der Level überein, dann ist der Text schon an der selben Stelle enthalten.

cYaONE 30. Aug 2003 18:26

Re: Doppelte Einträge in einem TreeView vermeiden
 
Danke, Christian, ich habe inzwischen eine Lösung gefunden! :D

Coder90 8. Nov 2004 16:24

Re: Doppelte Einträge in einem TreeView vermeiden
 
Hi
Im DF konnte man mir irgendwie nicht helfen, darum versuch ich es mal hier. :coder:

Also, ich will auch das man einen Namen nur einmal benutzen kann:
Delphi-Quellcode:
var Item: Integer;

{...}

procedure TForm1.TreeView1Edited(Sender: TObject; Node: TTreeNode;
  var S: String);
begin
  for Item:=0 to TreeView1.Items.Count-1 do
  begin
    if TreeView1.Items[Item]<>Node then
    if TreeView1.Items[Item].Text=S then
    begin
      MessageDlg('Der Name '''+S+''' ist bereits vorhanden.',mtError,[mbOK],0);
      Node.EditText;
      break;
    end;
  end;
end;
Ich glaube das " Node.EditText; " funktioniert nicht so richtig.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09: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