AGB  ·  Datenschutz  ·  Impressum  







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

Verzeichnis mit Treeview verschieben

Ein Thema von mimi · begonnen am 9. Sep 2005 · letzter Beitrag vom 23. Okt 2005
 
mimi

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

Verzeichnis mit Treeview verschieben

  Alt 9. Sep 2005, 13:20
Hallo,
habe wieder ein problem mit der Treeview:
ich möchte einen Eintrag per Draq und drop in einer TreeView verschieben(geht auch, code ist aus diesem forum).nun wollte ich gerne da ich mit verzeichnisen arbeite das qullverzeichnis zum zielverzeichnis verschieben.
in der ShowMessageBox sieht alles richtig aus nur er sagt:
Delphi-Quellcode:
---------------------------
Fehler beim Verschieben der Datei oder des Ordners
---------------------------
Datei kann nicht verschoben werden: Die Quelldatei oder vom Quelldatenträger kann nicht gelesen werden.
---------------------------
OK
---------------------------
den code habe ich wie gesagt aus dem forum und leicht angepasst:
Delphi-Quellcode:
function MoveDir(const fromDir, toDir: string): Boolean;
var
  fos: TSHFileOpStruct;
begin
  ZeroMemory(@fos, SizeOf(fos));
  with fos do
  begin
    wFunc := FO_Move;
    fFlags := FOF_NoConfirmMkDir + FOF_NOCONFIRMATION;
    pFrom := PChar(fromDir + #0);
    pTo := PChar(toDir + #0)
  end;
  Result := (0 = ShFileOperation(fos));
end;

procedure TForm1.TreeView1DragDrop(Sender, Source: TObject; X, Y: Integer);
var
  AnItem: TTreeNode;
  AttachMode: TNodeAttachMode;
  HT: THitTests;
  str:String;
begin
  if TreeView1.Selected = nil then Exit;
  HT := TreeView1.GetHitTestInfoAt(X, Y);
  AnItem := TreeView1.GetNodeAt(X, Y);
  if (HT - [htOnItem, htOnIcon, htNowhere, htOnIndent] <> HT) then
  begin
    if (htOnItem in HT) or (htOnIcon in HT) then AttachMode := naAddChild
    else if htNowhere in HT then AttachMode := naAdd

    else if htOnIndent in HT then AttachMode := naInsert;
    TreeView1.Selected.MoveTo(AnItem, AttachMode);

// Showmessage(Edit1.Text+#13+ListenDir + GetTreeViewPath(TreeView1.Selected));
    str:=Edit1.Text;
    Edit1.Text:='';
    SetCurrentDir('');
    MoveDir(str,ListenDir + GetTreeViewPath(TreeView1.Selected));
  end;
// in listenDir steht folgendes:
// D:\Daten\eigene\delphi\tools\programmstarter\system\listen\
// + der Knotenname der gerade ausgewählt wurde
ich weiß einfach nicht mehr weiter, für jeden tip währe ich dankbar !
(ich nuzte zum erstenmal wieder eine TreeView, und habe diese komponenten noch nicht ganz verstanden )

Edit:
in edit steht folgendes:
  Edit1.Text:=ListenDir + GetTreeViewPath(TreeView1.Selected); und den GetTreeViewPath habe ich auch wieder aus dem Forum hier:
Delphi-Quellcode:
function GetTreeViewPath(Uebergeordnet:TTreeNode):String;
Var
  Node : TTreeNode;
  Path : String;
Begin
  if Uebergeordnet <> NIL then begin
    Node := Uebergeordnet;
    Path := '';

    Repeat
      Path := Node.Text + '\' + Path;
      Node := Node.Parent;
    Until ( Node = Nil );

    result:=Path;
  end
  else
    result:='';
End;
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat
 


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 01:54 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