Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Fragen zu TShellListView / TreeView (https://www.delphipraxis.net/109946-fragen-zu-tshelllistview-treeview.html)

kevin134 10. Mär 2008 16:10


Fragen zu TShellListView / TreeView
 
Hallo zusammen ;)

Ich habe mir vorgenommen, mich nun mal an etwas größeres als
einen Taschenrechner zu wagen ;) =)

Nun habe ich mir überlegt, einen Windowsexplorer zu gestalten.
Nur hierbei hänge ich ein wenig fest,
da ich nicht weiss ich ich von ListView zu Listview kopieren kann :D
Also von Links nach Rechts und andersrum ;)
Datei umbennen und löschen soll auch noch rein ... ;)
Desweiteren wollte ich fragen, ob es irgentwie möglich ist,
Videodateien von Servern ( wie Youtube ect ) herunterzuladen.
Es gibt ja zich tools dafür, da wollte ich fragen ob es mit
Delphi auch möglich ist, wenn ja, wie :D

Danke schonmal im Vorrauss =)

MfG
Kevin


Benutze Delphi 7

Fussball-Robby 10. Mär 2008 16:14

Re: Fragen zu TShellListView / TreeView
 
Ich will dir ja nicht die Laune am selber Programmieren verderben, aber Darstellen von Dateien im Explorer-Stil, Löschen bzw Verschieben von Dateien, und darüber hinaus das Anzeigen von Websiten etc. kann alles der Hier im Forum suchenTWebBrowser.
Wenn du es aber dennoch selber machen willst, such mal ein bisschen im Forum bzw in der Hilfe, da gibts es bestimmt genug Tipps

Mfg

kevin134 10. Mär 2008 16:15

Re: Fragen zu TShellListView / TreeView
 
Zitat:

Zitat von Fussball-Robby
Ich will dir ja nicht die Laune am selber Programmieren verderben, aber Darstellen von Dateien im Explorer-Stil, Löschen bzw Verschieben von Dateien, und darüber hinaus das Anzeigen von Websiten etc. kann alles der Hier im Forum suchenTWebBrowser.
Wenn du es aber dennoch selber machen willst, such mal ein bisschen im Forum bzw in der Hilfe, da gibts es bestimmt genug Tipps

Mfg

Hmm... mit dieser Funktion habe ich zwar auch
schon gearbeitet, aber mir war nicht bekannt,
das dieser auch Dateien bzw Ordner verwalten
kann ...
Was ist denn wesentlich einfacher ?
Sollte jedoch den gleich Zweck erfüllen ;)

kevin134 10. Mär 2008 21:56

Re: Fragen zu TShellListView / TreeView
 
push,

kann mir niemand helfen ?
die such funktion ist hier irgentwie so
unübersichtlich und google
spuckt au nich wirklich etwas aus =(


edit ...
so langsam komme ich der Sache schon näher ...
nur wie bekomm ich die TShellListView in diese Zeile zum Kopieren ?

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
DoFileWork(FO_COPY, 'C:\Test', 'D:\', 0);
end;
schon versucht die Pfade mit TShellListView1 bzw -2 zu ersetzen, geht aber nicht =(

kevin134 11. Mär 2008 16:29

Re: Fragen zu TShellListView / TreeView
 
push ...
weiss keiner eine antwort darauf ?
oder gibt es da keine möglichkeit ? =/
mfg Kevin

bitsetter 11. Mär 2008 19:47

Re: Fragen zu TShellListView / TreeView
 
Hi,

der Funktion musst du sicherlich 2 gültige Dateipfade übergeben.
Delphi-Quellcode:
ShellListView1.SelectedFolder.PathName
Pfad vom selektiertem Item zum Beispiel.
Delphi-Quellcode:
ShellListView1.Folders[...].PathName
Pfad von einem bestimmten Item.

kevin134 11. Mär 2008 19:58

Re: Fragen zu TShellListView / TreeView
 
Zitat:

Zitat von bitsetter
Hi,

der Funktion musst du sicherlich 2 gültige Dateipfade übergeben.
Delphi-Quellcode:
ShellListView1.SelectedFolder.PathName
Pfad vom selektiertem Item zum Beispiel.
Delphi-Quellcode:
ShellListView1.Folders[...].PathName
Pfad von einem bestimmten Item.


eh ja danke,
aber so ganz leuchtet es mir noch nicht wirklich
ein ...
also wie lautet jetzt bitte die zeile,
damit ich von ShellListView1 die ausgewählte datei bzw den ordner
zu ShellListView2 kopiere ?

mfg kevin



> bin noch nicht so vertraut mit delphi .... :)

bitsetter 11. Mär 2008 20:10

Re: Fragen zu TShellListView / TreeView
 
Delphi-Quellcode:
DoFileWork(FO_COPY, ShellListView1.SelectedFolder.PathName, ShellListView2.RootFolder.PathName, 0);
Muss du mal damit versuchen, konnte ich jedoch nicht testen.

Edit: Ein Problem stellen aber Ordner wie "Desktop" da, da dort der korrekte Pfad nicht übergeben wird.

kevin134 11. Mär 2008 20:14

Re: Fragen zu TShellListView / TreeView
 
Alles klar , funktioniert prima ;)

nun habe ich noch eine andere frage offen ;)


-> ausgewähle datei löschen

edit :

jetzt wirds noch ein wenig komplizierter ...
wie unterlege ich diese ganze funktion ( also das kopieren )
mit einer progressbar , falls es mal länger dauert ? ^^

bitsetter 11. Mär 2008 20:18

Re: Fragen zu TShellListView / TreeView
 
Delphi-Quellcode:
  if FileExists(ShellListView1.SelectedFolder.PathName) then
    DeleteFile(ShellListView1.SelectedFolder.PathName);

IceTube 11. Mär 2008 20:21

Re: Fragen zu TShellListView / TreeView
 
Hallo Kevin!

Zu der Frage...

Zitat:

Zitat von kevin134
wie unterlege ich diese ganze funktion ( also das kopieren )
mit einer progressbar , falls es mal länger dauert ? ^^

[/quote]

eine Antwort:
http://swissdelphicenter.ch/de/showcode.php?id=330

lg

kevin134 11. Mär 2008 22:49

Re: Fragen zu TShellListView / TreeView
 
soo danke leute :)

ich werde jetzt gleich noch versuchen
das mit der progressbar hinzubekommen,
das will nicht so ganz,
dann werde ich vllt das hier mal
zum testen uploaden ... :D
gibt zwar schon zich explorer
aber naja ;) warum nicht ^^


Edit


Zitat:

Zitat von IceTube
Hallo Kevin!

Zu der Frage...

Zitat:

Zitat von kevin134
wie unterlege ich diese ganze funktion ( also das kopieren )
mit einer progressbar , falls es mal länger dauert ? ^^


eine Antwort:
http://swissdelphicenter.ch/de/showcode.php?id=330

lg

hm das will bei mir irgentwie nicht
funktionieren ....

er bemengelt immer das "CopyFileWithProgressBar1" nicht kennt ....

bitsetter 11. Mär 2008 23:20

Re: Fragen zu TShellListView / TreeView
 
Hast du die Prozedur CopyFileWithProgressBar1 auch im private Abschnitt des Formulars deklariert?

kevin134 12. Mär 2008 13:54

Re: Fragen zu TShellListView / TreeView
 
Zitat:

Zitat von bitsetter
Hast du die Prozedur CopyFileWithProgressBar1 auch im private Abschnitt des Formulars deklariert?

nein,
ich habe das nach :

Delphi-Quellcode:
implementation
uses
  ShellAPI;
{$R *.dfm}
eingefügt ...
muss das da etwa nicht rein , sonder NUR in :

Delphi-Quellcode:
  private
    { Private-Deklarationen } /// <<<<<<<<<<<<<
  public
    { Public-Deklarationen }
  end;
???



edit :

nach testen erfolgen noch mehr fehler ...

bitsetter 12. Mär 2008 18:42

Re: Fragen zu TShellListView / TreeView
 
Hi,

ich meinte eher so:
Delphi-Quellcode:
  private
    procedure CopyFileWithProgressBar1(Source, Destination: string);
  public
    { Public declarations }
  end;

kevin134 12. Mär 2008 22:14

Re: Fragen zu TShellListView / TreeView
 
Zitat:

Zitat von bitsetter
Hi,

ich meinte eher so:
Delphi-Quellcode:
  private
    procedure CopyFileWithProgressBar1(Source, Destination: string);
  public
    { Public declarations }
  end;


hm habe ich mal getestet und bin beim
folgenen, etwas besseren ergebnis gekommen ...
nur noch eine fehlermeldung ...
undzwar folgende :

http://img338.imageshack.us/img338/5...benanntst3.jpg

bitsetter 12. Mär 2008 22:29

Re: Fragen zu TShellListView / TreeView
 
Ja wo bleibt er denn hängen? Benutze ansonsten mal den Debugger, kann so auch nur raten.

kevin134 12. Mär 2008 22:43

Re: Fragen zu TShellListView / TreeView
 
Zitat:

Zitat von bitsetter
Ja wo bleibt er denn hängen? Benutze ansonsten mal den Debugger, kann so auch nur raten.

nach dem ich es testen will,
sprich F9 drücke, läd er ein paar sekunden
dann kommt diese Meldung ...
davon mal ab, habe gerade mal compiliert und naja...
nach schliessen des programms kommen
weitere solcher fehlermelden, das irgentwas auf
ein speicher zugreift und "read" nicht durchgeführt
werden kann =/

bitsetter 12. Mär 2008 22:56

Re: Fragen zu TShellListView / TreeView
 
Sonst hänge das Projekt mal an, falls es kein großes Geheimnis ist.

kevin134 12. Mär 2008 23:12

Re: Fragen zu TShellListView / TreeView
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von bitsetter
Sonst hänge das Projekt mal an, falls es kein großes Geheimnis ist.


hmm wieso geheimnis :DD
hab doch eh voll viel "von euch" :D
gute idee mach ich mal :DDD

siehe anhang ^^

bitsetter 12. Mär 2008 23:58

Re: Fragen zu TShellListView / TreeView
 
Ein echt fieser Fehler :roll:, bei mir liegt es anscheinend an der geänderten Farbe des rechten TShellTreeView, setze mal die Farbe wieder auf clWindow.

kevin134 13. Mär 2008 22:58

Re: Fragen zu TShellListView / TreeView
 
Liste der Anhänge anzeigen (Anzahl: 1)
hmmm irgentwie geht jetzt fast gar nichts mehr...
habe das alles mit der progressbar eingefügt,
und sobald ich nur ins rechte shelltreeview bzw listview klicke,
kommt wieder so ein fehler und alles hängt sich auf =(


edit :
anhang hinzugefügt

(programm mit progressbarfunktion)
bitte einmal durchschauen =)
danke

toms 14. Mär 2008 02:30

Re: Fragen zu TShellListView / TreeView
 
Hallo,

TShellListView.Root ist ja gleich rfMyComputer.
Wenn ich nun dein Programm starte, gibt es gleich beim Start eine AV und auch beim Beenden.

Seltsamerweise tritt das Problem nicht auf, wenn Root = rfDesktop

(Getestet unter D6)

kevin134 14. Mär 2008 07:24

Re: Fragen zu TShellListView / TreeView
 
Zitat:

Zitat von toms
Hallo,

TShellListView.Root ist ja gleich rfMyComputer.
Wenn ich nun dein Programm starte, gibt es gleich beim Start eine AV und auch beim Beenden.

Seltsamerweise tritt das Problem nicht auf, wenn Root = rfDesktop

(Getestet unter D6)

ich habe das zu "MyComputer" geändert,
weil sonst Fehler auftreten,
wenn man versucht direkt auf dem Desktop
Dateien zu kopieren, aber anscheinend muss
ich das in Kauf nehmen ...
Danke ich werde es nacher mal versuchen ;)

mfg
Kevin

kevin134 15. Mär 2008 01:13

Re: Fragen zu TShellListView / TreeView
 
hmmm
das mit der Progressbar bekomm
ich aber irgentwie immer noch
nicht hin =/

toms 15. Mär 2008 07:28

Re: Fragen zu TShellListView / TreeView
 
Zitat:

Zitat von kevin134
hmmm
das mit der Progressbar bekomm
ich aber irgentwie immer noch
nicht hin =/

Copy & Paste die CopyFileWithProgressBar1 Funktion, setze eine Progressbar auf deine Form

und rufe die Funktion auf:

Delphi-Quellcode:
CopyFileWithProgressBar1('Datei1.xyz', 'Datei2xyz', ProgressBar1);
Delphi-Quellcode:
procedure CopyFileWithProgressBar1(Source, Destination: string; ProgressBar: TProgressBar);
var
  FromF, ToF: file of byte;
  Buffer: array[0..4096] of char;
  NumRead: integer;
  FileLength: longint;
begin
  AssignFile(FromF, Source);
  reset(FromF);
  AssignFile(ToF, Destination);
  rewrite(ToF);
  FileLength := FileSize(FromF);
  with ProgressBar do
  begin
    Min := 0;
    Max := FileLength;
    while FileLength > 0 do
    begin
      BlockRead(FromF, Buffer[0], SizeOf(Buffer), NumRead);
      FileLength := FileLength - NumRead;
      BlockWrite(ToF, Buffer[0], NumRead);
      Position := Position + NumRead;
    end;
    CloseFile(FromF);
    CloseFile(ToF);
  end;
end;

kevin134 15. Mär 2008 09:33

Re: Fragen zu TShellListView / TreeView
 
Zitat:

Zitat von toms
Zitat:

Zitat von kevin134
hmmm
das mit der Progressbar bekomm
ich aber irgentwie immer noch
nicht hin =/

Copy & Paste die CopyFileWithProgressBar1 Funktion, setze eine Progressbar auf deine Form

und rufe die Funktion auf:

Delphi-Quellcode:
CopyFileWithProgressBar1('Datei1.xyz', 'Datei2xyz', ProgressBar1);
Delphi-Quellcode:
procedure CopyFileWithProgressBar1(Source, Destination: string; ProgressBar: TProgressBar);
var
  FromF, ToF: file of byte;
  Buffer: array[0..4096] of char;
  NumRead: integer;
  FileLength: longint;
begin
  AssignFile(FromF, Source);
  reset(FromF);
  AssignFile(ToF, Destination);
  rewrite(ToF);
  FileLength := FileSize(FromF);
  with ProgressBar do
  begin
    Min := 0;
    Max := FileLength;
    while FileLength > 0 do
    begin
      BlockRead(FromF, Buffer[0], SizeOf(Buffer), NumRead);
      FileLength := FileLength - NumRead;
      BlockWrite(ToF, Buffer[0], NumRead);
      Position := Position + NumRead;
    end;
    CloseFile(FromF);
    CloseFile(ToF);
  end;
end;


kann ich auch anstatt Datei xyz auch shelltreeview1 und so nehmen ? ^^


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:00 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 by Thomas Breitkreuz