-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathServer.FMX.Forms.Main.pas
97 lines (80 loc) · 2.33 KB
/
Server.FMX.Forms.Main.pas
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
(*
Copyright 2016, MARS-Curiosity - REST Library
Home: https://github.com/andrea-magni/MARS
*)
unit Server.FMX.Forms.Main;
interface
uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.StdCtrls,
FMX.Controls.Presentation, FMX.Edit, FMX.Layouts, System.Actions, FMX.ActnList
, MARS.http.Server.Indy
;
type
TMainForm = class(TForm)
MainActionList: TActionList;
StartServerAction: TAction;
StopServerAction: TAction;
Layout1: TLayout;
PortNumberEdit: TEdit;
Label1: TLabel;
StartButton: TButton;
StopButton: TButton;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure StartServerActionExecute(Sender: TObject);
procedure StopServerActionExecute(Sender: TObject);
procedure StartServerActionUpdate(Sender: TObject);
procedure StopServerActionUpdate(Sender: TObject);
procedure PortNumberEditChange(Sender: TObject);
private
FServer: TMARShttpServerIndy;
public
end;
var
MainForm: TMainForm;
implementation
{$R *.fmx}
uses
Web.HttpApp
, MARS.Core.URL, MARS.Core.Engine
, Server.Ignition;
procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
StopServerAction.Execute;
end;
procedure TMainForm.FormCreate(Sender: TObject);
begin
PortNumberEdit.Text := TServerEngine.Default.Port.ToString;
StartServerAction.Execute;
end;
procedure TMainForm.PortNumberEditChange(Sender: TObject);
begin
TServerEngine.Default.Port := StrToInt(PortNumberEdit.Text);
end;
procedure TMainForm.StartServerActionExecute(Sender: TObject);
begin
// http server implementation
FServer := TMARShttpServerIndy.Create(TServerEngine.Default);
try
FServer.DefaultPort := TServerEngine.Default.Port;
FServer.Active := True;
except
FServer.Free;
raise;
end;
end;
procedure TMainForm.StartServerActionUpdate(Sender: TObject);
begin
StartServerAction.Enabled := (FServer = nil) or (FServer.Active = False);
end;
procedure TMainForm.StopServerActionExecute(Sender: TObject);
begin
FServer.Active := False;
FreeAndNil(FServer);
end;
procedure TMainForm.StopServerActionUpdate(Sender: TObject);
begin
StopServerAction.Enabled := Assigned(FServer) and (FServer.Active = True);
end;
end.