27. februar 2005 - 13:18
#1
hvis du bruger componentet nmftp1, har jeg lidt.
det er kun selve forbindelsen men den kan udbygget med download upload som jeg også har liggende et eller andet sted..
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Psock, NMFtp, StdCtrls, ComCtrls;
type
TForm1 = class(TForm)
NMFTP1: TNMFTP;
StatusBar1: TStatusBar;
HostTxt: TEdit;
PortTxt: TEdit;
UserTxt: TEdit;
PassTxt: TEdit;
Edit7: TEdit;
Edit6: TEdit;
CheckBox1: TCheckBox;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Memo1: TMemo;
procedure NMFTP1ListItem(Listing: String);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure NMFTP1Disconnect(Sender: TObject);
procedure NMFTP1Connect(Sender: TObject);
procedure NMFTP1Failure(var Handled: Boolean; Trans_Type: TCmdType);
procedure NMFTP1ConnectionFailed(Sender: TObject);
procedure NMFTP1Error(Sender: TComponent; Errno: Word; Errmsg: String);
procedure NMFTP1HostResolved(Sender: TComponent);
procedure NMFTP1InvalidHost(var Handled: Boolean);
procedure NMFTP1PacketRecvd(Sender: TObject);
procedure NMFTP1PacketSent(Sender: TObject);
procedure NMFTP1Success(Trans_Type: TCmdType);
procedure NMFTP1TransactionStart(Sender: TObject);
procedure NMFTP1TransactionStop(Sender: TObject);
procedure NMFTP1UnSupportedFunction(Trans_Type: TCmdType);
procedure NMFTP1Status(Sender: TComponent; Status: String);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
var
Q: Integer;
procedure TForm1.NMFTP1ListItem(Listing: String);
begin
Memo1.Lines.Add(IntToStr(Q)+': '+Listing);
Inc(Q);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
If CheckBox1.Checked then
Begin
NMFTP1.Proxy := Edit6.Text;
NMFTP1.ProxyPort := StrToInt(Edit7.Text);
End;
NMFTP1.Host := HostTxt.Text;
NMFTP1.Port := StrToInt(PortTxt.Text);
NMFTP1.Timeout := 5000;
NMFTP1.UserID := UserTxt.Text;
NMFTP1.Password := PassTxt.Text;
try
NMFTP1.Connect;
except
On E:Exception do
writeln(E.message);
end
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Q := 1;
try NMFTP1.NList; except end;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
NMFTP1.Disconnect;
end;
procedure TForm1.NMFTP1Disconnect(Sender: TObject);
begin
If StatusBar1 <> nil then
StatusBar1.SimpleText := 'Disconnected';
end;
procedure TForm1.NMFTP1Connect(Sender: TObject);
begin
StatusBar1.SimpleText := 'Connected';
end;
procedure TForm1.NMFTP1Failure(var Handled: Boolean; Trans_Type: TCmdType);
begin
Case Trans_Type of
cmdChangeDir: StatusBar1.SimpleText := 'ChangeDir failure';
cmdMakeDir: StatusBar1.SimpleText := 'MakeDir failure';
cmdDelete: StatusBar1.SimpleText := 'Delete failure';
cmdRemoveDir: StatusBar1.SimpleText := 'RemoveDir failure';
cmdList: StatusBar1.SimpleText := 'List failure';
cmdRename: StatusBar1.SimpleText := 'Rename failure';
cmdUpRestore: StatusBar1.SimpleText := 'UploadRestore failure';
cmdDownRestore: StatusBar1.SimpleText := 'DownloadRestore failure';
cmdDownload: StatusBar1.SimpleText := 'Download failure';
cmdUpload: StatusBar1.SimpleText := 'Upload failure';
cmdAppend: StatusBar1.SimpleText := 'UploadAppend failure';
cmdReInit: StatusBar1.SimpleText := 'ReInit failure';
cmdAllocate: StatusBar1.SimpleText := 'Allocate failure';
cmdNList: StatusBar1.SimpleText := 'NList failure';
cmdDoCommand: StatusBar1.SimpleText := 'DoCommand failure';
end;
end;
procedure TForm1.NMFTP1ConnectionFailed(Sender: TObject);
begin
ShowMessage('Connection Failed');
end;
procedure TForm1.NMFTP1Error(Sender: TComponent; Errno: Word;
Errmsg: String);
begin
ShowMessage('Error '+IntToStr(Errno)+': '+Errmsg);
end;
procedure TForm1.NMFTP1HostResolved(Sender: TComponent);
begin
StatusBar1.SimpleText := 'Host resolved';
end;
procedure TForm1.NMFTP1InvalidHost(var Handled: Boolean);
begin
ShowMessage('Invalid Host');
end;
procedure TForm1.NMFTP1PacketRecvd(Sender: TObject);
begin
StatusBar1.SimpleText := IntToStr(NMFTP1.BytesRecvd)+' of '+IntToStr(NMFTP1.BytesTotal);
end;
procedure TForm1.NMFTP1PacketSent(Sender: TObject);
begin
StatusBar1.SimpleText := IntToStr(NMFTP1.BytesSent)+' of '+IntToStr(NMFTP1.BytesTotal);
end;
procedure TForm1.NMFTP1Success(Trans_Type: TCmdType);
begin
Case Trans_Type of
cmdChangeDir: StatusBar1.SimpleText := 'ChangeDir success';
cmdMakeDir: StatusBar1.SimpleText := 'MakeDir success';
cmdDelete: StatusBar1.SimpleText := 'Delete success';
cmdRemoveDir: StatusBar1.SimpleText := 'RemoveDir success';
cmdList: StatusBar1.SimpleText := 'List success';
cmdRename: StatusBar1.SimpleText := 'Rename success';
cmdUpRestore: StatusBar1.SimpleText := 'UploadRestore success';
cmdDownRestore: StatusBar1.SimpleText := 'DownloadRestore success';
cmdDownload: StatusBar1.SimpleText := 'Download success';
cmdUpload: StatusBar1.SimpleText := 'Upload success';
cmdAppend: StatusBar1.SimpleText := 'UploadAppend success';
cmdReInit: StatusBar1.SimpleText := 'ReInit success';
cmdAllocate: StatusBar1.SimpleText := 'Allocate success';
cmdNList: StatusBar1.SimpleText := 'NList success';
cmdDoCommand: StatusBar1.SimpleText := 'DoCommand success';
end;
end;
procedure TForm1.NMFTP1TransactionStart(Sender: TObject);
begin
StatusBar1.SimpleText := 'Beginning Data Transfer';
end;
procedure TForm1.NMFTP1TransactionStop(Sender: TObject);
begin
StatusBar1.SimpleText := 'Data Transfer Complete';
end;
procedure TForm1.NMFTP1UnSupportedFunction(Trans_Type: TCmdType);
begin
Case Trans_Type of
cmdChangeDir: ShowMessage('ChangeDir unsupported');
cmdMakeDir: ShowMessage('MakeDir unsupported');
cmdDelete: ShowMessage('Delete unsupported');
cmdRemoveDir: ShowMessage('RemoveDir unsupported');
cmdList: ShowMessage('List unsupported');
cmdRename: ShowMessage('Rename unsupported');
cmdUpRestore: ShowMessage('UploadRestore unsupported');
cmdDownRestore: ShowMessage('DownloadRestore unsupported');
cmdDownload: ShowMessage('Download unsupported');
cmdUpload: ShowMessage('Upload unsupported');
cmdAppend: ShowMessage('UploadAppend unsupported');
cmdReInit: ShowMessage('ReInit unsupported');
cmdAllocate: ShowMessage('Allocate unsupported');
cmdNList: ShowMessage('NList unsupported');
cmdDoCommand: ShowMessage('DoCommand unsupported');
end;
end;
procedure TForm1.NMFTP1Status(Sender: TComponent; Status: String);
begin
// If StatusBar1 <> nil then
// StatusBar1.SimpleText := status;
end;
end.