Autor Beitrag
mimi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: Do 08.09.05 15:05 
Hallo,
ich habe danch gesucht und nichts gefunden.
ich möchte folgendes erreichen:
wenn ich folgenden baum habe:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
Test1
 Test2
 Test1
Test4
  Test2
  Test1


und nun möchte ich schauen ob der Hauptbaum also Test1 udn Test4 ob dadrin ein eintrag ist der doppel ist und zwar bei TreeView1Addition und das klappt nicht so wobei es auch bäume gibt wo nichts drin ist wie ein verzeichnis praktisch....
ich habe dazu folgenden code/gefunden und geschrieben:
ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
Procedure SearchText2(ANode : TTreeNode; Const ASearchText : String; AOutPut : TStrings);
Begin
    // 1. Suchtext suchen
  If ( Pos(ASearchText, ANode.Text) > 0 ) Then
    AOutPut.Add('Node "' + ANode.Text + '" Level ' + IntToStr(ANode.Level) +
                ' Index ' + IntToStr(ANode.Index));

    // 2. nächsten Knoten holen
  If ( ANode.getNext <> Nil ) Then
    SearchText2(ANode.GetNext, ASearchText, AOutPut);
End;

function isTextExists(text:String):boolean;
var
  t:TStringList;
begin
  t:=TStringList.Create;
  if Form1.TreeView1.Selected <> NIL then begin
    SearchText2(Form1.TreeView1.Selected,text,t);
    if t.IndexOf(text) = -1 then
      result:=False
    else
      result:=True;
  end
  else
    result:=True;

end;

procedure TForm1.TreeView1Addition(Sender: TObject; Node: TTreeNode);
begin
  if isTextExists(Node.Text) = False then
    if DirectoryExists(ListenDir + Node.Text) = false then mkDir(ListenDir+Node.Text)
  else
    node.Delete;

end;

aber leider passiert nicht das was passieren soll: er verhindert das in unterschiedlichen hauptknoten die gleichen knoten vorkommen können, er behandelt ist wie eine ListBox und nicht wie eine TreeView.
ich möchte nur ein baum prüfen nicht alle....

_________________
MFG
Michael Springwald, "kann kein englisch...."
Lannes
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2352
Erhaltene Danke: 4

Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
BeitragVerfasst: Fr 09.09.05 09:42 
Hallo,
user profile iconmimi hat folgendes geschrieben:

ich möchte nur ein baum prüfen nicht alle....

:gruebel: ist schwer zu verstehen was Du erreichen möchtest.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
Test1
 Test2
 Test1
Test4
  Test2
  Test1

Willst Du prüfen ob der angelegte Knoten z.B. Test2 im Hauptbaum Test1 vorhanden ist, oder in den anderen Hauptbäumen?

Dein Code durchsucht alle Node ab dem Selectierten.

_________________
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
mimi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: Fr 09.09.05 12:13 
Zitat:
Willst Du prüfen ob der angelegte Knoten z.B. Test2 im Hauptbaum Test1 vorhanden ist, oder in den anderen Hauptbäumen?


ich möchte nur prüfen ob er im Test1 vorhanden ist nicht in andren Knoten also nur im makierten Knoten
ich hoffe meine andre lösung ist verständlicher *G*

ich habe es andres gelöst.
und zwar:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
procedure TForm1.TreeView1Addition(Sender: TObject; Node: TTreeNode);
var
  str:String;
begin
  if notAdd = False then begin
    str:=ListenDir + GetTreeViewPath(Node);

    if DirectoryExists(str) = False then
      ForceDirectories(str)
    else begin
      node.Delete;
      ShowMessage('Eintrag gibt es schon !');
    end;
  end;
end;

ich arbeite ja sovieso mit verzeichnisen da ist dieer code warscheinlich am schnelsten, oder ?
Wenn es noch einen andren weg gibt: nur her damit....

_________________
MFG
Michael Springwald, "kann kein englisch...."