AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Dateiname in TreeView einfügen

Ein Thema von mimi · begonnen am 26. Okt 2006 · letzter Beitrag vom 27. Okt 2006
Antwort Antwort
mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#1

Dateiname in TreeView einfügen

  Alt 26. Okt 2006, 22:43
Hallo,
seit einigen stunden versuche ich eine procedure/function zu entwickeln die folgendes tut:

- ich rufe sie mit einem Dateinamen und der jeweiligen VirtualTreeView auf.
dann soll es den dateinamen per GetToken zerlegen z.b. aus:
D:\test1\datei1\hall.txt
wird D:, Test1, Datei1 und so weiter.

er soll nur hinzufügen wenn das aktuelle verzeichnis noch nicht gibt ansonten muss er es da hinzufügen wo er eins gefunden hat.

hier ist mein qullcode dort wird leider alles doppelt angezeigt:
Delphi-Quellcode:
function AddToLT(lt:TVirtualStringTree; DateiNamen:String):PVirtualNode;
function IndexOF(str:String;Node:PVirtualNode;Index:Integer):PVirtualNode;
var
  r,t:Boolean;
  FileItem:PFileItem;
  temp:PVirtualNode;
begin
  r:=True; t:=False; temp:=niL;
  if index > 1 then begin
    if node = nil then Node:=lt.GetFirst;
    if node <> NIL then temp:=node;
  end
  else begin
    Node:=lt.RootNode;
    if node <> NIL then temp:=node;

  end;


  if (Node <> NIL) then begin
    while r = true do begin
      if lt.GetNodeLevel(node) > 1 then
        node:=lt.GetNext(node);

      if node <> NIL then begin
        FileItem:=lt.GetNodeData(node);

        if UpperCase(FileItem.Caption) = UpperCase(str) then begin
          r:=False;
          t:=True;
        end;
      end
      else begin
        r:=False;
        t:=false;
      end;
    end;
  end;
  if t = false then
    result:=temp
  else
    result:=node;
end;

var
  i:Integer;
  str:String;
  FileItem:PFileItem;
  Node:PVirtualNode;
begin
  result:=NIL; node:=NIL;

  for i:=1 to NumToken(Dateinamen,'\') do begin
    str:=GetToken(Dateinamen,'\',i);
    node:=IndexOF(str,node,i);

      result:=lt.AddChild(node);

      lt.ValidateNode(result,False);

      FileItem:=lt.GetNodeData(result);
      FileItem.Caption:=str;
      node:=result;
// end;
  end;
end;
mein ziel ist es:
ich habe jetzt zwei dateinamen:
Zitat:
D:\test1\hallo\wie geht es\hall1.txt
D:\test1\hallo\hall1.txt
in der liste soll es anschließen so aussehen:
D:
test1
hallo
wie geht es dir
und nicht so :
D:
test1
hallo
wie geht es dir
hallo

im moment gibt es eine av ich weiß leider nicht warum und davor gab es halt diesen fehler den ich oben beschrieben hat... ich hoffe mir kann jemmand weiter helfen.

zum hintergrund:
ich möchte eine datei liste zu einer DB hinzufügen. und die ansicht soll so sein wie im datei explorer von windows lings eine listTree und rechts eine TreeView.
ich habe mir das so vorgestellt:

ich nehme mir die dateien die hinzugefügt werden soll einzelen vor füge sie in die TreeView ein bzw. dort sollen nur die verzeichnise stehen.

ich klicke eins der verzeichnise an muss ich alle Dateien aus der DB lesen die zum verzeichnis gehöhren und in der listView dastellen...
das dürfte kein problem werden.

in der DB steht dann eine Dateiliste wie z.b.:
D:\Test1\hallo1\60812.txt
D:\Test1\hallo1\111.txt
D:\Test111\hallo1\622212.txt
D:\Test1\hallo2\60000812.txt
D:\hallo.txt
und aus dieser liste möchte ich halt nacher diesen baum erzeugen darum die funktion die ich versuche zu entwickeln.. ich hoffe ihr versteht das prinzip und könnt mir weiter helfen. ich weiß einfach nicht mehr weiter.

ich hatte in der DF noch einen qullcode gefunden von jemmand der hat der möchte auch ein baum dastellen aber in einem MAINMENU:
http://www.delphi-forum.de/viewtopic...highlight=menu
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat
Benutzerbild von Lannes
Lannes

Registriert seit: 30. Jan 2005
Ort: Münster
745 Beiträge
 
Delphi 3 Professional
 
#2

Re: Dateiname in TreeView einfügen

  Alt 26. Okt 2006, 23:51
Hallo,

im DF gibt es noch mehr, eventuell ist es das was Du suchst:
[TTreeView, VCL Win32] ...Node-Pfad (String) ins TreeView einfügen/TreeView füllen?

//Nachtrag: Etwas ähnliches gibt es auch in der Code-Library hier in der DP, man kann aber die Einfügeposition nicht vorgeben:
TTreeView-Node-Bäume schnell anlegen
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
  Mit Zitat antworten Zitat
mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#3

Re: Dateiname in TreeView einfügen

  Alt 27. Okt 2006, 02:34
vielen dank werde ich mir morgen gleich mal anschauen !
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  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 17:07 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz