Class TSynchForm (unit SynchDlg)

Inherits from

TForm

Constructors



Functions

procedure ClientSocket1Connect(Sender: TObject; Socket: TCustomWinSocket);


procedure ClientSocket1Connecting(Sender: TObject; Socket: TCustomWinSocket);


procedure ClientSocket1Disconnect(Sender: TObject; Socket: TCustomWinSocket);


procedure ClientSocket1Error(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer);


procedure ClientSocket1Lookup(Sender: TObject; Socket: TCustomWinSocket);


procedure ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);

ErrorCode := 0;

procedure ConnectButClick(Sender: TObject);

******************************************************************** TSynchForm - Client

procedure DisconButClick(Sender: TObject);


procedure FormClose(Sender: TObject; var Action: TCloseAction);


procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);


procedure FormCreate(Sender: TObject);

******************************************************************** TSynchForm

procedure FormDestroy(Sender: TObject);


procedure FormShow(Sender: TObject);


procedure ListenButClick(Sender: TObject);


procedure MinTrayButClick(Sender: TObject);

******************************************************************** TSynchForm - Server

procedure RestoreServerClick(Sender: TObject);


procedure SendButClick(Sender: TObject);


procedure ServerSocket1Accept(Sender: TObject; Socket: TCustomWinSocket);


procedure ServerSocket1ClientConnect(Sender: TObject; Socket: TCustomWinSocket);


procedure ServerSocket1ClientDisconnect(Sender: TObject; Socket: TCustomWinSocket);


procedure ServerSocket1ClientError(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer);


procedure ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket);


procedure ServerSocket1Listen(Sender: TObject; Socket: TCustomWinSocket);


procedure Shutdown1Click(Sender: TObject);


procedure ShutdownButClick(Sender: TObject);


procedure SynchButClick(Sender: TObject);


function AdlerFields(Table: TTable): integer;

General

procedure BeginSynch;


procedure Check_Missing_Records;

Process_Record_Request(True);

procedure ClientButs;


procedure ClientStat(const s: string);


procedure Command_PostRecord;

pk

procedure Command_SendRecord;


procedure Command_SynchAll;


procedure Command_SynchTable;


procedure Command_TableNames;


procedure Do_Manual_Synchronization;


function FindTable(TableName: string): TTable;

******************************************************************** General Helper functions

function FindTablePK(Table: TTable; pks: string): boolean;


procedure Get_User_Choice(InRemote: boolean);

******************************************************************** TSynchForm - Client - Manual Synchronization Functions

procedure OnClientMsg(const s: string);

******************************************************************** TSynchForm - Client - "Message Loop"

procedure OnServerMsg(const s: string);

******************************************************************** TSynchForm - Server - "Message Loop"

procedure OnSynchTableMsg(const s: string);

Process all records that are in the Local Table but NOT Remote

procedure Process_Record_Request(InLocal, InRemote: boolean);

PK

procedure Record_to_StringList(Table: TTable; pk: string; sl: TStringList);


procedure Send_Record_Request(const TableName: string; pk: string);

ClientStat(Format('%-20s %s', ['Record Match', s]));

procedure ServerButs;


procedure ServerStat(const s: string);


procedure Use_Local_Values;

Process the User's choice

procedure Use_Remote_Values;

pk

Properties

Events

Variables

ClientList : TListBox;


ClientPanel : TPanel;


ClientSocket1 : TClientSocket;


ConnectBut : TButton;


DataSynchronizationServer1 : TMenuItem;


DisconBut : TButton;


FormSettings1 : TFormSettings;


Label1 : TLabel;


Label2 : TLabel;


Label3 : TLabel;


ListenBut : TButton;


MinTrayBut : TButton;


N1 : TMenuItem;


PageControl1 : TPageControl;


RemoteAddressEdit : TEdit;


RemotePortEdit : TEdit;


SendBut : TButton;


SendEdit : TEdit;


ServerPanel : TPanel;


ServerPortEdit : TEdit;


ServerSocket1 : TServerSocket;


Shutdown1 : TMenuItem;


ShutdownBut : TButton;


SvrList : TListBox;


SynchBut : TButton;


TableSet : TTableSetHelper;


TabSheet1 : TTabSheet;


TabSheet2 : TTabSheet;


TrayIcon1 : TTrayIcon;


TrayPopup : TPopupMenu;


ClientBuf : array[0..8192] of char;


ClientCom : TStringList;


ClientTab : TTable;


ClientTabName : string;


ClntChoice : TUserChoice;


CompForm : TCompRecordForm;


Con : TCustomWinSocket;


CurCom : TStringList;

current Connection to client

NumClient : integer;

Client

NumServer : integer;

Server

PKList : TStringList;


ServerBuf : array[0..8192] of char;


SRecList : TSynchRecList;



Constructors


Functions


procedure ClientSocket1Connect(Sender: TObject; Socket: TCustomWinSocket);


procedure ClientSocket1Connecting(Sender: TObject; Socket: TCustomWinSocket);


procedure ClientSocket1Disconnect(Sender: TObject; Socket: TCustomWinSocket);


procedure ClientSocket1Error(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer);


procedure ClientSocket1Lookup(Sender: TObject; Socket: TCustomWinSocket);


procedure ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);

ErrorCode := 0;


procedure ConnectButClick(Sender: TObject);

******************************************************************** TSynchForm - Client


procedure DisconButClick(Sender: TObject);


procedure FormClose(Sender: TObject; var Action: TCloseAction);


procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);


procedure FormCreate(Sender: TObject);

******************************************************************** TSynchForm


procedure FormDestroy(Sender: TObject);


procedure FormShow(Sender: TObject);


procedure ListenButClick(Sender: TObject);


procedure MinTrayButClick(Sender: TObject);

******************************************************************** TSynchForm - Server


procedure RestoreServerClick(Sender: TObject);


procedure SendButClick(Sender: TObject);


procedure ServerSocket1Accept(Sender: TObject; Socket: TCustomWinSocket);


procedure ServerSocket1ClientConnect(Sender: TObject; Socket: TCustomWinSocket);


procedure ServerSocket1ClientDisconnect(Sender: TObject; Socket: TCustomWinSocket);


procedure ServerSocket1ClientError(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer);


procedure ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket);


procedure ServerSocket1Listen(Sender: TObject; Socket: TCustomWinSocket);


procedure Shutdown1Click(Sender: TObject);


procedure ShutdownButClick(Sender: TObject);


procedure SynchButClick(Sender: TObject);


function AdlerFields(Table: TTable): integer;

General


procedure BeginSynch;


procedure Check_Missing_Records;

Process_Record_Request(True);


procedure ClientButs;


procedure ClientStat(const s: string);


procedure Command_PostRecord;

pk


procedure Command_SendRecord;


procedure Command_SynchAll;


procedure Command_SynchTable;


procedure Command_TableNames;


procedure Do_Manual_Synchronization;


function FindTable(TableName: string): TTable;

******************************************************************** General Helper functions


function FindTablePK(Table: TTable; pks: string): boolean;


procedure Get_User_Choice(InRemote: boolean);

******************************************************************** TSynchForm - Client - Manual Synchronization Functions


procedure OnClientMsg(const s: string);

******************************************************************** TSynchForm - Client - "Message Loop"


procedure OnServerMsg(const s: string);

******************************************************************** TSynchForm - Server - "Message Loop"


procedure OnSynchTableMsg(const s: string);

Process all records that are in the Local Table but NOT Remote


procedure Process_Record_Request(InLocal, InRemote: boolean);

PK


procedure Record_to_StringList(Table: TTable; pk: string; sl: TStringList);


procedure Send_Record_Request(const TableName: string; pk: string);

ClientStat(Format('%-20s %s', ['Record Match', s]));


procedure ServerButs;


procedure ServerStat(const s: string);


procedure Use_Local_Values;

Process the User's choice


procedure Use_Remote_Values;

pk


Properties


Events


Variables


ClientList : TListBox;


ClientPanel : TPanel;


ClientSocket1 : TClientSocket;


ConnectBut : TButton;


DataSynchronizationServer1 : TMenuItem;


DisconBut : TButton;


FormSettings1 : TFormSettings;


Label1 : TLabel;


Label2 : TLabel;


Label3 : TLabel;


ListenBut : TButton;


MinTrayBut : TButton;


N1 : TMenuItem;


PageControl1 : TPageControl;


RemoteAddressEdit : TEdit;


RemotePortEdit : TEdit;


SendBut : TButton;


SendEdit : TEdit;


ServerPanel : TPanel;


ServerPortEdit : TEdit;


ServerSocket1 : TServerSocket;


Shutdown1 : TMenuItem;


ShutdownBut : TButton;


SvrList : TListBox;


SynchBut : TButton;


TableSet : TTableSetHelper;


TabSheet1 : TTabSheet;


TabSheet2 : TTabSheet;


TrayIcon1 : TTrayIcon;


TrayPopup : TPopupMenu;


ClientBuf : array[0..8192] of char;


ClientCom : TStringList;


ClientTab : TTable;


ClientTabName : string;


ClntChoice : TUserChoice;


CompForm : TCompRecordForm;


Con : TCustomWinSocket;


CurCom : TStringList;

current Connection to client


NumClient : integer;

Client


NumServer : integer;

Server


PKList : TStringList;


ServerBuf : array[0..8192] of char;


SRecList : TSynchRecList;