Winshoes 7.X버전으로 FTP프로그램을 만들고 있는데...
파일을 다운로드하는 부분은 쓰레딩으로 구현을 하고 있습니다.
작동이 전혀 일어나질 않습니다.
도움이 필요합니다...
소스의 일부분입니다.
(참고로 별도의 thread unit을 만들지 않고 main form에 코딩을 하였습니다.
그리고 샘플예제는 simpleFTP입니다.)
1. 쓰레드처리를 위한 버튼 클릭*************************
procedure TfrmSimpleFTP.Button1Click(Sender: TObject);
begin
FtpThread.CreateThread;
end;
2. 쓰레드선언/내용 부분
// ***************************************************
FtpThread = class(TThread)
private
{ Private declarations }
ftp : TSimpleFTP;
Fmsg : string;
public
constructor CreateThread;
protected
procedure Display(Msg:string);
procedure AddtoMemo;
procedure Execute; override;
end;
// ***************************************************
// ********************************************************************
constructor FtpThread.CreateThread;
begin
// thread의 실행이 종료하면 자동으로 free되게 설정
FreeOnTerminate := True;
inherited Create(FALSE);
end;
procedure FtpThread.Execute;
begin
// FTP접속 및 파일 다운로드
with ftp do begin
showmessage('시작');
// 여기에서 더이상 진행을 하질 않습니다(디버그시)
HostName := '127.0.0.1';
UserName := 'test';
Password := 'test';
connect;
LocalDir := 'C:';
RemoteDir := '/';
TransferType := ttBinary;
GetFile('config.sys');
showmessage('종료');
Disconnect ;
Terminate;
end;
if not ftp.Connect then begin
Display('실패');
ftp.Disconnect ;
Exit;
end;
//if terminated then exit;
end;
procedure FtpThread.Display(Msg:string);
begin
Fmsg := msg;
synchronize(AddtoMemo);
end;
procedure FtpThread.AddtoMemo;
begin
frmSimpleFTP.memStatus.lines.add(ftp.LastError);
end;