📄 uclient.pas
字号:
unit uClient;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, TransInterface, PrEximTrans, ComCtrls, ExtCtrls, PrEximClasses;
type
TfrmMain = class(TForm)
FunctionsList: TListBox;
Panel1: TPanel;
pgCtrl: TPageControl;
tbsLogin: TTabSheet;
tbsL: TTabSheet;
TabSheet3: TTabSheet;
TabSheet4: TTabSheet;
Panel2: TPanel;
btnExecute: TButton;
lbeUsername: TLabeledEdit;
lbePassword: TLabeledEdit;
mmProfile: TMemo;
lbeStreamFile: TLabeledEdit;
TabSheet1: TTabSheet;
lbeHost: TLabeledEdit;
Label1: TLabel;
lbePort: TEdit;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FunctionsListClick(Sender: TObject);
procedure btnExecuteClick(Sender: TObject);
private
fTcpClient: TImageTransClient;
fClient: TScanClient;
procedure DoLogin;
procedure DoLogout;
procedure DoGetUserProfile;
procedure DoSend;
procedure DoConnect;
procedure DoSendFolder;
procedure DoGetAllFaxes;
procedure DoCreateFolder;
public
{ Public declarations }
end;
var
frmMain: TfrmMain;
implementation
{$R *.dfm}
procedure TfrmMain.FormCreate(Sender: TObject);
begin
fTcpClient := TImageTransClient.Create(Owner);
fClient := TScanClient.Create(Owner);
fClient.Transport := fTcpClient;
end;
procedure TfrmMain.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if fClient.Transport.Connected then fClient.Logout;
FreeAndNil(fTcpClient);
FreeAndNil(fClient);
end;
procedure TfrmMain.FunctionsListClick(Sender: TObject);
begin
pgCtrl.ActivePageIndex := FunctionsList.ItemIndex;
end;
procedure TfrmMain.btnExecuteClick(Sender: TObject);
begin
case FunctionsList.ItemIndex of
0: DoLogin;
1: DoLogout;
2: DoGetUserProfile;
3: DoSend;
4: DoConnect;
5: DoSendFolder;
6: DoGetAllFaxes;
7: DoCreateFolder;
end;
end;
procedure TfrmMain.DoGetUserProfile;
var
AStream: TMemoryStream;
begin
AStream := TMemoryStream.Create;
try
fClient.GetUserProfile(AStream);
AStream.Position := 0;
mmProfile.Lines.LoadFromStream(AStream);
finally
AStream.Free;
end;
end;
procedure TfrmMain.DoLogin;
begin
if not fClient.Transport.Connected then fClient.Transport.Connect();
fClient.Login(lbeUsername.Text, lbePassword.Text)
end;
procedure TfrmMain.DoLogout;
begin
fClient.Logout;
end;
procedure TfrmMain.DoSend;
var
AStream: TFileStream;
begin
AStream := TFileStream.Create(lbeStreamFile.Text, fmOpenRead);
try
fTcpClient.Send(AStream);
finally
AStream.Free;
end;
end;
procedure TfrmMain.DoConnect;
begin
if fClient.Transport.Connected then fClient.Logout;
fClient.Transport.Disconnect;
fClient.Transport.Host := lbeHost.Text;
fClient.Transport.Port := StrToIntDef(lbePort.Text, 5100);
fClient.Transport.Connect();
end;
procedure TfrmMain.DoSendFolder;
var
AFolder: TFolder;
begin
AFolder := TFolder.Create;
try
with AFolder.Keys.Add do
begin
Name:='Test Folder';
Value:='Test';
end;
fClient.SendFolder(AFolder);
finally
AFolder.Free;
end;
end;
procedure TfrmMain.DoGetAllFaxes;
var
AFaxes: TPageList;
begin
AFaxes := TPageList.Create;
try
AFaxes.PageStoredPath := 'd:\';
fClient.GetAllFaxes(AFaxes);
ShowMessage(Format('Faxes count=%d',[AFaxes.Count]));
finally
AFaxes.Free;
end;
end;
procedure TfrmMain.DoCreateFolder;
var
AFld: TFolder;
begin
AFld := TFolder.Create;
try
with AFld.Keys.Add do
Name := 'CreateFolder';
fClient.CreateFolder(AFld);
finally
AFld.Free;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -