unit Komunikator;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPServer, IdFTPServer,
jpeg, ExtCtrls;
type
TForm1 = class(TForm)
IdFTPServer1: TIdFTPServer;
Wyslij: TButton;
Rozlacz: TButton;
Polacz: TButton;
Tekst: TEdit;
Ip: TEdit;
Odbior: TMemo;
Image1: TImage;
procedure PolaczClick(Sender: TObject);
procedure RozlaczClick(Sender: TObject);
procedure IdFTPServer1AfterUserLogin(ASender: TIdFTPServerThread);
procedure IdFTPServer1UserLogin(ASender: TIdFTPServerThread;
const AUsername, APassword: String; var AAuthenticated: Boolean);
procedure IdFTPServer1StoreFile(ASender: TIdFTPServerThread;
const AFileName: String; AAppend: Boolean; var VStream: TStream);
procedure IdFTPServer1RetrieveFile(ASender: TIdFTPServerThread;
const AFileName: String; var VStream: TStream);
procedure IdFTPServer1ChangeDirectory(ASender: TIdFTPServerThread;
var VDirectory: String);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.PolaczClick(Sender: TObject);
begin
ShowMessage('Polaczono');
end;
procedure TForm1.RozlaczClick(Sender: TObject);
begin
ShowMessage('Rozlaczono');
end;
procedure TForm1.IdFTPServer1AfterUserLogin(ASender: TIdFTPServerThread);
begin
ASender.HomeDir := 'C:\';
ASender.CurrentDir := 'C:\'
end;
procedure TForm1.IdFTPServer1UserLogin(ASender: TIdFTPServerThread;
const AUsername, APassword: String; var AAuthenticated: Boolean);
begin
AAuthenticated := ((AUsername = 'kropa') and (APassword = 'haslo'));
if AAuthenticated = true then
begin
end;
end;
procedure TForm1.IdFTPServer1StoreFile(ASender: TIdFTPServerThread;
const AFileName: String; AAppend: Boolean; var VStream: TStream);
var
appdir : string;
begin
appdir := ExtractFilePath(ParamStr(0));
if not Aappend then
begin
VStream := TFileStream.Create(AppDir + AFilename,fmCreate);
end;
if Aappend then
begin
VStream := TFileStream.Create(AppDir + AFilename,fmOpenWrite);
end;
end;
procedure TForm1.IdFTPServer1RetrieveFile(ASender: TIdFTPServerThread;
const AFileName: String; var VStream: TStream);
var
appdir : string;
begin
appdir :=ExtractFilePath(ParamStr(0));
//zmienną appdir można zdefiniować jako public
//oraz w obsłudze zdarzenia OnAfterLogin podstawić wartość jak powyżej
//wysyłanie pliku
VStream := TFileStream.Create(AppDir + AFilename,fmOpenRead);
Application.ProcessMessages;
end;
procedure TForm1.IdFTPServer1ChangeDirectory(ASender: TIdFTPServerThread;
var VDirectory: String);
begin
Asender.CurrentDir := VDirectory;
end;
end.[/b]