Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi (INDY/FTP) Wie lade ich eine datei per "doppelklick" runter? (https://www.delphipraxis.net/55700-indy-ftp-wie-lade-ich-eine-datei-per-doppelklick-runter.html)

nikluetke 27. Okt 2005 15:09

Re: (INDY/FTP) Wie lade ich eine datei per "doppelklick
 
Delphi-Quellcode:
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.
so, das ist der code. ich weiss, ich bin noch neuling in delphi, deswegen will ich ja ein bisschen üben :roll:

wie muss man das jetzt machen, das das klappt? ichw eiss, ich bin ein schwerer fall

lg NiKluetke

Neutral General 27. Okt 2005 15:11

Re: (INDY/FTP) Wie lade ich eine datei per "doppelklick
 
Delphi-Quellcode:
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.
so sollte es gehen wenn ich mich nicht irre.

Die Muhkuh 27. Okt 2005 15:13

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:
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;
@Michael,

dein Code ist falsch. Da sind noch zwei < und > drinne ;)

nikluetke 27. Okt 2005 15:14

Re: (INDY/FTP) Wie lade ich eine datei per "doppelklick
 
cool, danke. so, jetzt die (hoffentlich letzte frage)
bei
Delphi-Quellcode:
 if FileExists(<Filename>) then
habe ich noch einen fehler undzwar:
Delphi-Quellcode:
[Fehler] Unit1.pas(51): Ausdruck erwartet, aber '<' gefunden
SUPERGROßES DANKE!!!!!!

LG NiKluetke

/edit DANKE, habs gesehen!!!!!
lG Nikluetke

Neutral General 27. Okt 2005 15:15

Re: (INDY/FTP) Wie lade ich eine datei per "doppelklick
 
jaja war nur auf die schnelle nachgeguckt :D
grrr.. egal :mrgreen:

Die Muhkuh 27. Okt 2005 15:16

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:
function IsFile(const Filename : String) : Boolean;
var
  IsFile: Boolean;
begin
  if FileExists(Filename) then
  begin
    Result := true;
  end
  else
  begin
    Result := false;
  end;
end;
MfG,

Manu :thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:56 Uhr.
Seite 2 von 2     12   

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