source upload
This commit is contained in:
@@ -0,0 +1,109 @@
|
||||
unit Project14ClientMain;
|
||||
|
||||
{
|
||||
|
||||
By definition, you need the proper server to run:
|
||||
- Project14Server.dpr for Named Pipes
|
||||
- Project14ServerHttp.dpr for HTTP
|
||||
- Project14ServerHttpWeak.dpr for HTTP/weak
|
||||
|
||||
}
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
{$IFDEF WINDOWS} Windows, Messages, {$ENDIF}
|
||||
SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
||||
Dialogs, StdCtrls,
|
||||
SynCommons, mORMot, mORMotHttpClient,
|
||||
Project14Interface;
|
||||
|
||||
type
|
||||
TForm1 = class(TForm)
|
||||
edtA: TEdit;
|
||||
edtB: TEdit;
|
||||
lblA: TLabel;
|
||||
lblB: TLabel;
|
||||
btnCall: TButton;
|
||||
btnCancel: TButton;
|
||||
lblResult: TLabel;
|
||||
ComboProtocol: TComboBox;
|
||||
procedure btnCancelClick(Sender: TObject);
|
||||
procedure btnCallClick(Sender: TObject);
|
||||
procedure FormDestroy(Sender: TObject);
|
||||
procedure ComboProtocolChange(Sender: TObject);
|
||||
private
|
||||
{ Private declarations }
|
||||
public
|
||||
{ Public declarations }
|
||||
Model: TSQLModel;
|
||||
Client: TSQLRestClientURI;
|
||||
end;
|
||||
|
||||
var
|
||||
Form1: TForm1;
|
||||
|
||||
implementation
|
||||
|
||||
{$R *.dfm}
|
||||
|
||||
{$ifndef FPC}
|
||||
{$R vista.RES} // includes Win10 manifest - use .RES for linux cross-compilation
|
||||
{$endif}
|
||||
|
||||
procedure TForm1.btnCancelClick(Sender: TObject);
|
||||
begin
|
||||
Close;
|
||||
end;
|
||||
|
||||
procedure TForm1.btnCallClick(Sender: TObject);
|
||||
var a,b: integer;
|
||||
err: integer;
|
||||
I: ICalculator;
|
||||
begin
|
||||
val(edtA.Text,a,err);
|
||||
if err<>0 then begin
|
||||
edtA.SetFocus;
|
||||
exit;
|
||||
end;
|
||||
val(edtB.Text,b,err);
|
||||
if err<>0 then begin
|
||||
edtB.SetFocus;
|
||||
exit;
|
||||
end;
|
||||
if Client=nil then begin
|
||||
if Model=nil then
|
||||
Model := TSQLModel.Create([],ROOT_NAME);
|
||||
case ComboProtocol.ItemIndex of
|
||||
0,2: Client := TSQLHttpClient.Create('localhost', PORT_NAME,Model);
|
||||
{$IFDEF WINDOWS}
|
||||
1: Client := TSQLRestClientURINamedPipe.Create(Model,APPLICATION_NAME);
|
||||
{$ENDIF}
|
||||
else exit;
|
||||
end;
|
||||
if not Client.ServerTimeStampSynchronize then begin
|
||||
ShowMessage(UTF8ToString(Client.LastErrorMessage));
|
||||
exit;
|
||||
end;
|
||||
case ComboProtocol.ItemIndex of
|
||||
2: TSQLRestServerAuthenticationNone.ClientSetUser(Client,'User','');
|
||||
else Client.SetUser('User','synopse');
|
||||
end;
|
||||
Client.ServiceDefine([ICalculator],sicShared);
|
||||
end;
|
||||
if Client.Services['Calculator'].Get(I) then
|
||||
lblResult.Caption := IntToStr(I.Add(a,b));
|
||||
end;
|
||||
|
||||
procedure TForm1.FormDestroy(Sender: TObject);
|
||||
begin
|
||||
Client.Free;
|
||||
Model.Free;
|
||||
end;
|
||||
|
||||
procedure TForm1.ComboProtocolChange(Sender: TObject);
|
||||
begin
|
||||
FreeAndNil(Client);
|
||||
end;
|
||||
|
||||
end.
|
Reference in New Issue
Block a user