Prueba utilizando WinInet:
Código Delphi
[-]
Uses WinInet;
function Download(LocalFile, RemoteFile, Server: string; Port: Word;
Username, Password: PChar): Boolean;
var
hNet: HINTERNET;
hCon: HINTERNET;
Context: DWORD;
begin
Result := FALSE;
Context:= 0;
hNet := InternetOpen('agent', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
if (hNet <> nil) then
begin
hCon:= InternetConnect(hNet,PChar(Server),Port,Username,Password,
INTERNET_SERVICE_FTP,0,Context);
if (hCon <> nil) then
begin
Result:= FtpGetFile(hCon,PChar(RemoteFile),PChar(LocalFile),FALSE,
FILE_ATTRIBUTE_NORMAL, FTP_TRANSFER_TYPE_BINARY, Context);
InternetCloseHandle(hCon);
end;
InternetCloseHandle(hNet);
end;
end;
Download('c:\1.txt','/Carpeta/1.txt','192.168.1.33',21,'Usuario','Password');