![]() |
(INDY/FTP) Wie lade ich eine datei per "doppelklick&quo
Ich habe die verbindung aufgebaut und jetzt habe ich dateien und der listbox.
Also ich stelle mir das so vor: Wenn man auf die datei klickt, öffnet sich der opendialog und fragt einen ab, wo man die datei auf dem rechner speichern will. wie geht das? bitte um hilfe lg NiKluetke |
Re: (INDY/FTP) Wie lade ich eine datei per "doppelklick
Hi,
Code
Delphi-Quellcode:
Ob es diese Get-Methode gibt, weiß ich gerade nicht, aber es gibt etwas ähnliches. Einfach mal gucken ;)
if Listbox1.ItemIndex <> - 1 then
begin if SaveDialog1.Execute then begin IDFTP1.Get(ListBox1.Items[Listbox1.ItemIndex], SaveDialog1.Filename); end; end; MfG, Manu :thumb: |
Re: (INDY/FTP) Wie lade ich eine datei per "doppelklick
erstmal ein großes dankeschön für die antwort.
nun habe ich noch folgende frage: wie kann man prüfen ob das markirte eine datei oder ein ordner ist? lg NiKluetke |
Re: (INDY/FTP) Wie lade ich eine datei per "doppelklick
Hmm,
ich würde ganz spontan sagen:
Delphi-Quellcode:
if FileExists(<Filename>) then
begin isFile := true; end else begin isFile := false; end; |
Re: (INDY/FTP) Wie lade ich eine datei per "doppelklick
ob ein Eintrag in deiner Liste einen Ordner oder eine Datei darstellt bekommst du doch mit dem "List" Kommando, dort einfach die Details mit abrufen.
|
Re: (INDY/FTP) Wie lade ich eine datei per "doppelklick
großes dankeschön.
@SirThornberry: Ich weiss nicht, was du damit meinst :gruebel: :wall: lg NiK |
Re: (INDY/FTP) Wie lade ich eine datei per "doppelklick
Zitat:
was jetzt? |
Re: (INDY/FTP) Wie lade ich eine datei per "doppelklick
Delphi-Quellcode:
so -.-
function IsFile(Filename : String) : Boolean;
begin if FileExists(Filename) then begin isFile := true; end else begin isFile := false; end; end; das musst du halt entweder als Function schreiben oder IsFile als globale Boolean Variable deklarieren ;) |
Re: (INDY/FTP) Wie lade ich eine datei per "doppelklick
irgendwie bin ich blöd :wall:
bei mir kommt dann fehler: [Fehler] Unit1.pas(46): Nicht genügend wirkliche Parameter (bei if FileExists Filename then ) ich ferstehe das nicht :( lg NiKluetke |
Re: (INDY/FTP) Wie lade ich eine datei per "doppelklick
sry hatte mich verschrieben. Jetzt ists richtig -.-
Aber wie mir scheint fehlen dir noch einige Grundlagen.. Also das z.B FileExists eine Function ist die Parameter erwartet dadrauf hättest du alleine kommen sollen und das Filename in dem Fall der Parameter sein muss... ;) |
Re: (INDY/FTP) Wie lade ich eine datei per "doppelklick
Delphi-Quellcode:
so, das ist der code. ich weiss, ich bin noch neuling in delphi, deswegen will ich ja ein bisschen üben :roll:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdFTP, StdCtrls, ComCtrls, IdAntiFreezeBase, IdAntiFreeze, XPMan, ExtCtrls; type TForm1 = class(TForm) connect: TButton; IdFTP1: TIdFTP; Edit1: TEdit; desconnect: TButton; wobinich: TButton; Edit2: TEdit; dirchange: TButton; back: TButton; XPManifest1: TXPManifest; IdAntiFreeze1: TIdAntiFreeze; LabeledEdit1: TLabeledEdit; LabeledEdit2: TLabeledEdit; LabeledEdit3: TLabeledEdit; ListBox1: TListBox; procedure connectClick(Sender: TObject); procedure desconnectClick(Sender: TObject); procedure wobinichClick(Sender: TObject); procedure dirchangeClick(Sender: TObject); procedure backClick(Sender: TObject); procedure ListBox1DblClick(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation function IsFile(Filename : String) : Boolean; var IsFile: Boolean; begin if FileExists(<Filename>) then begin isFile := true; end else begin isFile := false; end; end; {$R *.dfm} procedure TForm1.connectClick(Sender: TObject); begin IdFTP1.username := LabeledEdit2.Text; IdFTP1.Password := LabeledEdit3.Text; IdFTP1.Host := LabeledEdit1.Text; IdFTP1.Connect; if idFTP1.Connected then Edit1.Text:='Verbunden'; idftp1.list(listbox1.items,'',false); end; procedure TForm1.desconnectClick(Sender: TObject); begin IdFTP1.Disconnect; edit1.Text := 'Getrennt'; end; procedure TForm1.wobinichClick(Sender: TObject); begin idftp1.list(listbox1.items,'',false);//IdFTP1.List(Memo1.Lines); end; procedure TForm1.dirchangeClick(Sender: TObject); begin IdFTP1.ChangeDir(Edit2.Text); idftp1.list(listbox1.items,'',false); end; procedure TForm1.backClick(Sender: TObject); begin IdFTP1.ChangeDir('..'); idftp1.list(listbox1.items,'',false); end; procedure TForm1.ListBox1DblClick(Sender: TObject); begin if Listbox1.ItemIndex <> - 1 then begin if isFile := True then begin IDFTP1.ChangeDir(Listbox1.Items[Listbox1.ItemIndex]); idftp1.list(listbox1.items,'',false); end; end; end. end. wie muss man das jetzt machen, das das klappt? ichw eiss, ich bin ein schwerer fall lg NiKluetke |
Re: (INDY/FTP) Wie lade ich eine datei per "doppelklick
Delphi-Quellcode:
so sollte es gehen wenn ich mich nicht irre.
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdFTP, StdCtrls, ComCtrls, IdAntiFreezeBase, IdAntiFreeze, XPMan, ExtCtrls; type TForm1 = class(TForm) connect: TButton; IdFTP1: TIdFTP; Edit1: TEdit; desconnect: TButton; wobinich: TButton; Edit2: TEdit; dirchange: TButton; back: TButton; XPManifest1: TXPManifest; IdAntiFreeze1: TIdAntiFreeze; LabeledEdit1: TLabeledEdit; LabeledEdit2: TLabeledEdit; LabeledEdit3: TLabeledEdit; ListBox1: TListBox; procedure connectClick(Sender: TObject); procedure desconnectClick(Sender: TObject); procedure wobinichClick(Sender: TObject); procedure dirchangeClick(Sender: TObject); procedure backClick(Sender: TObject); procedure ListBox1DblClick(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} // Functionen nach Impkementation schreiben... function IsFile(Filename : String) : Boolean; var IsFile: Boolean; begin if FileExists(<Filename>) then begin isFile := true; end else begin isFile := false; end; end; procedure TForm1.connectClick(Sender: TObject); begin IdFTP1.username := LabeledEdit2.Text; IdFTP1.Password := LabeledEdit3.Text; IdFTP1.Host := LabeledEdit1.Text; IdFTP1.Connect; if idFTP1.Connected then Edit1.Text:='Verbunden'; idftp1.list(listbox1.items,'',false); end; procedure TForm1.desconnectClick(Sender: TObject); begin IdFTP1.Disconnect; edit1.Text := 'Getrennt'; end; procedure TForm1.wobinichClick(Sender: TObject); begin idftp1.list(listbox1.items,'',false);//IdFTP1.List(Memo1.Lines); end; procedure TForm1.dirchangeClick(Sender: TObject); begin IdFTP1.ChangeDir(Edit2.Text); idftp1.list(listbox1.items,'',false); end; procedure TForm1.backClick(Sender: TObject); begin IdFTP1.ChangeDir('..'); idftp1.list(listbox1.items,'',false); end; procedure TForm1.ListBox1DblClick(Sender: TObject); begin if Listbox1.ItemIndex <> - 1 then begin if isFile(Listbox1.Items[Listbox1.ItemIndex]) then // Parameter vergessen begin IDFTP1.ChangeDir(Listbox1.Items[Listbox1.ItemIndex]); idftp1.list(listbox1.items,'',false); end; end; end. end. |
Re: (INDY/FTP) Wie lade ich eine datei per "doppelklick
Hi,
erstmal musst du bei deiner Funktion "IsFile" diese zwei < und > entfernen ;) Diese waren nur dafür gedacht, dass du später dort deinen Dateinamen reinsetzten sollst. Und die Procedure "Listbox1DblClick" müsste so heißen:
Delphi-Quellcode:
@Michael,
procedure TForm1.ListBox1DblClick(Sender: TObject);
begin if Listbox1.ItemIndex <> - 1 then begin if IsFile(ListBox1.Items[ListBox1.ItemIndex]) then // Hier ist es eine Datei begin // Hier kommt dein Code zum eine Datei runterzuladen end else begin IDFTP1.ChangeDir(Listbox1.Items[Listbox1.ItemIndex]); // Verzeichnis wechseln idftp1.list(listbox1.items,'',false); end; end; end; dein Code ist falsch. Da sind noch zwei < und > drinne ;) |
Re: (INDY/FTP) Wie lade ich eine datei per "doppelklick
cool, danke. so, jetzt die (hoffentlich letzte frage)
bei
Delphi-Quellcode:
habe ich noch einen fehler undzwar:
if FileExists(<Filename>) then
Delphi-Quellcode:
SUPERGROßES DANKE!!!!!!
[Fehler] Unit1.pas(51): Ausdruck erwartet, aber '<' gefunden
LG NiKluetke /edit DANKE, habs gesehen!!!!! lG Nikluetke |
Re: (INDY/FTP) Wie lade ich eine datei per "doppelklick
jaja war nur auf die schnelle nachgeguckt :D
grrr.. egal :mrgreen: |
Re: (INDY/FTP) Wie lade ich eine datei per "doppelklick
Hi,
ich hab doch geschrieben, dass du die < und > dort entfernen musst ;) . Also:
Delphi-Quellcode:
MfG,
function IsFile(const Filename : String) : Boolean;
var IsFile: Boolean; begin if FileExists(Filename) then begin Result := true; end else begin Result := false; end; end; Manu :thumb: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:35 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