Client에서 Ftp Server의 화일을 다운 받으려고 하는데 서버에 접속하고
Progress바가 움직이면서 다운받아지는 상태를 보이려고 합니다.
Button1을 Click할 경우에는 진행되는 상황이 보이는데
전 이프로그램을 실행하면 Click을 하지 않아도 자동으로 다운되는
상황이 보이고 다 받으면 다운 받은 프로그램이 실행되도록 하고 싶거든요.
그런데 창이 뜨지도 않고 바로 다운을 받아서 실행프로그램을 실행합니다.
왜 다운받는 상황의 창이 뜨지 않는 걸까요?
/////////////////////////////////////////////////////////////////////
unit DOWN;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Buttons, Psock, NMFtp, ComCtrls, ExtCtrls, StdCtrls;
type
TDown_F = class(TForm)
NMFTP1: TNMFTP;
ProgressBar1: TProgressBar;
Panel8: TPanel;
StatusBar1: TStatusBar;
Button1: TButton;
procedure NMFTP1PacketRecvd(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure NMFTP1TransactionStop(Sender: TObject);
procedure NMFTP1TransactionStart(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure NMFTP1Connect(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Down_F: TDown_F;
implementation
{$R *.DFM}
procedure TDown_F.NMFTP1PacketRecvd(Sender: TObject);
begin
ProgressBar1.Max := NmFtp1.BytesTotal;
ProgressBar1.Position := NmFtp1.BytesRecvd;
StatusBar1.SimpleText := IntToStr(Nmftp1.BytesTotal) + ' 중에 ' + IntToStr(NmFtp1.bytesrecvd) + ' 를 전송받았습니다.';
Application.ProcessMessages;
end;
procedure TDown_F.FormShow(Sender: TObject);
begin
Top := 0;
Left := 0;
NmFtp1.Host := 'XXX.XXX.XXX.XXX';
NmFtp1.UserID := 'Anonymous';
end;
procedure TDown_F.NMFTP1TransactionStop(Sender: TObject);
begin
StatusBar1.SimpleText := '전송이 완료되었습니다.';
end;
procedure TDown_F.NMFTP1TransactionStart(Sender: TObject);
begin
StatusBar1.SimpleText := '전송이 시도중 입니다.';
end;
procedure TDown_F.Button1Click(Sender: TObject);
begin
Try
Begin
NMFTP1.Connect;
If SetCurrentDir('C:imsi') = False Then
CreateDir('C:imsi');
If (FileExists('C:imsiimsi.EXE') = False) Or
(FileDateToDateTime(FileAge('C:imsiimsi.EXE')) <>
FileDateToDateTime(FileAge('imsi.EXE'))) Then
Begin
Try
NmFtp1.DownLoad('imsi.EXE','C:imsiimsi.EXE');
Except
On E:Exception Do
Begin
Application.MessageBox('화일 복사중 Error(101)가 발생했습니다.'
, '다운로드중...', mb_IconError + mb_Ok);
Close;
End;
End;
End;
NmFtp1.Disconnect;
WinExec(PChar('C:imsiimsi.EXE'), SW_Show);
Close;
End;
Except
On E:Exception Do
Begin
Application.MessageBox('접속에 실패했습니다.', '접속중...', mb_IconError + mb_Ok);
Close;
End;
End;
end;
procedure TDown_F.NMFTP1Connect(Sender: TObject);
begin
StatusBar1.SimpleText := '서버와 연결되었습니다.';
end;
end.