Files
lazarus-ccr/components/tvplanit/examples/mormot/fulldemo/mormotdatamodule.pas

106 lines
2.0 KiB
ObjectPascal
Raw Normal View History

unit mormotdatamodule;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Dialogs, ExtCtrls, VpmORMotDS;
type
{ TDemoDM }
TDemoDM = class(TDataModule)
Timer1: TTimer;
procedure Timer1Timer(Sender: TObject);
private
FHostIP: String;
procedure ReadCmdLine;
public
Datastore: TVpmORMotDatastore;
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
end;
var
DemoDM: TDemoDM;
implementation
{$R *.lfm}
const
// IP address of AWS (amazon web service) tvplanit demoserver
AWS_HOST_IP = '54.194.211.233';
constructor TDemoDM.Create(AOwner: TComponent);
begin
inherited;
ReadCmdLine;
Datastore := TVpmORMotDatastore.Create(self);
with Datastore do
begin
// if the HostIP is set, it will look for a running server on this IP
// address when connecting.
// leave blank (comment out) for a local (and private) database
HostIP := FHostIP;
HostPort := '8888';
EnableLogging := True;
Directory := 'data';
Connected := true;
if (Length(HostIP) > 0) and (not Connected) then
begin
MessageDlg('Cannot connect with server', mtError, [mbOk], 0);
Application.Terminate;
end;
end;
Timer1.Enabled := true;
end;
destructor TDemoDM.Destroy;
begin
Timer1.Enabled := false;
inherited;
end;
{ Use to commandline to switch between different servers.
- noserver --> don't use server, for a local (and private) database)
- localhost --> use server on local system
- (empty) --> use AWS (amazon web service) tvplanit demo server
- else --> specify ip address of server }
procedure TDemoDM.ReadCmdLine;
var
s: String;
i: Integer;
begin
FHostIP := AWS_HOST_IP;
for i:=1 to ParamCount do begin
s := lowercase(ParamStr(i));
if s = 'noserver' then
FHostIP := ''
else
FHostIP := s;
end;
end;
procedure TDemoDM.Timer1Timer(Sender: TObject);
begin
Timer1.Enabled := False;
Datastore.CheckUpdate;
Timer1.Enabled := True;
end;
end.