Constructing the Interface for an Internet Access Control Application - The Main Server Application (Page 2 of 5 )
Listing 1 : Main server application
unit server;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, IdBaseComponent, IdComponent, IdCustomTCPServer, IdTCPServer,
IdCmdTCPServer, Menus, ComCtrls,idcommandhandlers, ImgList, Buttons, ToolWin, StdCtrls,idcontext,idsync,idStack,
ExtCtrls,dateutils, DB, ADODB;
type
TMyContext = class(TIdContext)
public
IP: String;
Con: TDateTime;
compname:string;
// state:string;
end;
TLog = class(TIdSync)
protected
FMsg: String;
procedure DoSynchronize; override;
public
constructor Create(const AMsg: String);
class procedure AddMsg(const AMsg: String);
end;
TForm1 = class(TForm)
lv: TListView;
MainMenu1: TMainMenu;
File1: TMenuItem;
ImageList1: TImageList;
ToolBar1: TToolBar;
Exit1: TMenuItem;
LogOff1: TMenuItem;
Settings1: TMenuItem;
ts: TIdTCPServer;
newOp: TSpeedButton;
btnExit: TSpeedButton;
Memo1: TMemo;
activate: TSpeedButton;
Timer1: TTimer;
PopupMenu1: TPopupMenu;
AddClient1: TMenuItem;
StatusBar1: TStatusBar;
ado1: TADOTable;
View1: TMenuItem;
Stats1: TMenuItem;
About1: TMenuItem;
iCafeStation1: TMenuItem;
shut_down: TSpeedButton;
constructor Create(AOwner: TComponent);override;
procedure Exit1Click(Sender: TObject);
procedure Settings1Click(Sender: TObject);
procedure LogOff1Click(Sender: TObject);
procedure tsConnect(AContext: TIdContext);
procedure tsDisconnect(AContext: TIdContext);
procedure BitBtn2Click(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure tsExecute(AContext: TIdContext);
procedure newOpClick(Sender: TObject);
procedure btnExitClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure activateClick(Sender: TObject);
procedure AddClient1Click(Sender: TObject);
procedure lvDblClick(Sender: TObject);
procedure shut_downClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
level:string;
li:tlistitem;
WStation,tcharge,mins:string;
tAll:integer;
td,endtime:tdatetime;
uid:integer;
procedure Timing(theStation,charge,thetime:string);
procedure broadcastAll;
end;
var
Form1: TForm1;
theT:string;
implementation
uses Logon, adduser, settings, changepassword, newUser, addoperator;
{$R *.dfm}
procedure TForm1.broadcastAll;
var
List: TList;
Context: TMyContext;
I: Integer;
begin
// FContextList is inherited from TIdContext
List := form1.ts.Contexts.LockList;
try
for I := 0 to List.Count-1 do
begin
Context := TMyContext(List[I]);
try
Context.Connection.IOHandler.WriteLn('shutdown:end@plchldr');
except end;
end;
finally
form1.ts.Contexts.UnlockList;
end;
end;
Please enable JavaScript to view the comments powered by Disqus. blog comments powered by