// Dateien aus dem Netz laden:

// Getestet mit D4 unter WinME

// Variante 1
// Download mittels (verstecktem) Internetexplorer. Es wird der
// Download-Dialog angezeigt. Bei anderen Browsern muss man '
IEXPLORE.EXE'
// durch Pfad und Name des entsprechenden Browser ersetzen. Trotzdem
// muss es nicht funktionieren.
OPERA z.B. versteckt sich nicht.

uses shellapi;

procedure TForm1.Button2Click(Sender: TObject);
begin
shellexecute(handle,'open','IEXPLORE.EXE',
'http://www.dbrsoftware/eurostck.zip',nil,sw_hide);
end;

//-----------------------------------------------------------------------

// Variante 2
// Download ohne irgendeine Anzeige. Das Programm steht in der Zwischenzeit.

uses urlmon;

procedure TForm1.Button2Click(Sender: TObject);
var quelle,ziel:string;
begin
quelle:='http://www.dbrsoftware/eurostck.zip';
ziel:='c:\eurostck.zip';
URLDownloadToFileA(nil,pchar(quelle),pchar(ziel),0, nil);
end;

//-----------------------------------------------------------------------

// Variante 3
// Beispiel mittels HTTP mit einem Button, einer Statusbar und der
// Komponente TNMHTTP. Die Statusbar hat zwei Panels.


var

EmpfangeneBytes,GesendeteBytes,BytesInsgesamt:string;
zeit:longword;

procedure TForm1.FormCreate(Sender: TObject);
begin
statusbar1.panels[0].width:=round(statusbar1.width * 0.67);
end;

procedure
TForm1.Button1Click(Sender: TObject);
begin
if
StatusBar1=nil then exit;
StatusBar1.panels[0].text:='';
StatusBar1.panels[1].text:='';
NMHTTP1.InputFileMode:=True;
NMHTTP1.Port:=80;
NMHTTP1.Body:='c:\eurostck.zip';
try
zeit:=gettickcount;
NMHTTP1.Get('http://www.dbrsoftware/eurostck.zip');
except
end;
end;

procedure
TForm1.NMHTTP1Failure(Cmd: CmdType);
begin
StatusBar1.SimpleText :='Fehler '+inttostr(NMHTTP1.ReplyNumber)+
' aufgetreten';
beep;
try
deletefile(NMHTTP1.Body);
except
end;
end;

procedure
TForm1.NMHTTP1PacketRecvd(Sender: TObject);
begin
EmpfangeneBytes:=FormatFloat('#,##0',NMHTTP1.BytesRecvd);
BytesInsgesamt:=FormatFloat('#,##0',NMHTTP1.BytesTotal);
StatusBar1.panels[0].text:=EmpfangeneBytes+' Bytes von '+
BytesInsgesamt+' Bytes empfangen';
StatusBar1.panels[1].text:=
FormatFloat('#,##0.00',NMHTTP1.BytesRecvd/(1024 *
((gettickcount-zeit)/ 1000)))+' KB/Sek.';
end;

procedure
TForm1.NMHTTP1Success(Cmd: CmdType);
begin
GesendeteBytes:=FormatFloat('#,##0',NMHTTP1.BytesSent);
StatusBar1.panels[0].text:='Fertig ('+
EmpfangeneBytes+' Bytes empfangen und '+
GesendeteBytes+' Bytes gesendet)';
StatusBar1.panels[1].text:='';
beep;
end;

 

//-----------------------------------------------------------------------

// Variante 4
// Über FTP mit der Komponente TNMFTP.

const tmp='c:\versuch.txt';

procedure TForm1.Button1Click(Sender: TObject);
begin
if
NMFTP1.connected then NMFTP1.disconnect;
NMFTP1.Host:='dbr.software.de';
NMFTP1.Port:=21;
NMFTP1.UserID:='ID12345';
NMFTP1.TimeOut:=30000;
NMFTP1.password:='mypassword';
NMFTP1.connect;
NMFTP1.Download('/delphi/test.txt',tmp);
end;

procedure
TForm1.NMFTP1ConnectionFailed(Sender: TObject);
begin
showmessage('Keine Verbindung');
end;

procedure
TForm1.NMFTP1Failure(var handled: Boolean; Trans_Type: TCmdType);
begin
if
NMFTP1.connected then NMFTP1.disconnect;
showmessage('Fehler aufgetreten');
end;

procedure
TForm1.NMFTP1InvalidHost(var Handled: Boolean);
begin
showmessage('Host nicht gefunden');
end;

procedure
TForm1.Button2Click(Sender: TObject);
begin
if
NMFTP1.connected then begin
NMFTP1.disconnect;
showmessage('Verbindung getrennt');
end;
end;

procedure
TForm1.NMFTP1Success(Trans_Type: TCmdType);
begin
NMFTP1.disconnect;
showmessage('Übertragung fertig');
end;
 



 

Zugriffe seit 6.9.2001 auf Delphi-Ecke