Desenvolvendo o layout do Módulo de FTP
Inicialmente , incorpore os seguintes componentes ao form
- 1 memo (paleta standard) NAME = Memo_Relatorio_FTP
- 4 label (paleta standard) NAME = Label_Host , Label_Nome , Label_Senha , Label_FTP_Aviso
- 3 button (paleta standard) NAME = Btn_Conectar , Btn_Desconectar , Btn_Upload
- 3 caixa de texto(edit) (paleta standard) NAME= Edit_Host , Edit_Name , Edit_Senha
- 1 Sharp (paleta Additional) NAME = Shape_Conectado
- 1 IdFTP ( paleta Indy clientes) NAME = IdFTP1
- 1 OpenDialog (paleta Dialogs) NAME = OpenDialog1
DEIXE OS COMPONENTES COMO ESTA A FOTO ABAIXO:

1)Dê um duplo-clique no Btn_Conectar e insira as instruções apresentadas a seguir:
procedure TForm1.Btn_ConectarClick(Sender: TObject);
begin
idFTP1.Host := Edit_Host.Text;
idFTP1.Username := Edit_Name.Text;
idFTP1.Password := Edit_Senha.Text;
try
idFTP1.Connect;
finally
if idFTP1.Connected = True Then
Shape_Conectado.Brush.Color := clLime;
Memo_Relatorio_FTP.Lines.Add(''Conectado ao endereço: '' + idFTP1.Host);
Memo_Relatorio_FTP.Lines.Add(''Servidor remoto: '' + idFTP1.SystemDesc);
Memo_Relatorio_FTP.Lines.Add('' '');
Btn_Upload.Enabled := True;
Btn_Desconectar.Enabled := True;
Btn_Conectar.Enabled :=False;
end;
end;2) Em seguida dê um duplo-clique no botão Btn_Upload e insira as instruções em negrito:
procedure TForm1.Btn_UploadClick(Sender: TObject);
var
m : TStream;
f : TStream;
t : Cardinal;
Nome_Arquivo,
Auxiliar :String;
contador : Integer;
begin
Auxiliar := '''';
f := nil;
m := nil;
Memo_Relatorio_FTP.Lines.Add(''Diretório original: '' + Diretorio_Leitura);
OpenDialog1.Filter := ''Arquivos(*.*)|*.*'';
if OpenDialog1.Execute then
begin
Nome_Arquivo := OpenDialog1.FileName;
Memo_Relatorio_FTP.Lines.Add (''Operação: troca de diretório local'');
Memo_Relatorio_FTP.Lines.Add (''Diretório do arquivo: '' + GetCurrentDir);
Memo_Relatorio_FTP.Lines.Add ('''');
Nome_Arquivo := AnsiStrRScan(PCHar(Nome_Arquivo), ''\'');
for contador := 2 To StrLen(PCHar(Nome_Arquivo)) do
Auxiliar := Auxiliar + Nome_Arquivo [contador];
Nome_Arquivo := Auxiliar;
try
Memo_Relatorio_FTP.Lines.Add(''Operação: Upload'');
Memo_Relatorio_FTP.Lines.Add (''Arquivo local: '' + OpenDialog1.FileName);
Memo_Relatorio_FTP.Lines.Add (''Gravado como: '' + Nome_Arquivo);
f := TFileStream.Create(OpenDialog1.FileName,fmOpenRead);
m := TMemoryStream.Create;
m.CopyFrom(f,f.Size);
m.Seek(0,0) ;
t := GetTickCount;
idFTP1.Put(m,Nome_Arquivo);
Memo_Relatorio_FTP.Lines.Add(Format(''tempo %d milesegundos'',[GetTickCount - t]));
Memo_Relatorio_FTP.Lines.Add(Format(''Tamanho %d bytes'',[m.Size]));
Memo_Relatorio_FTP.Li
...
Exibição do post interrompida. Para ler conteúdo completo,
clique aqui