{*******************************************************} { } { Responsive Software http://www.responsive.co.nz } { } { Copyright (c) 2003-2006 Responsive Software Limited } { } {*******************************************************} unit Register; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Base, StdCtrls, Buttons, ComCtrls; type TRegisterForm = class(TBaseForm) OkBitBtn: TBitBtn; CancelBitBtn: TBitBtn; Label1: TLabel; NoOfWorkstationsEdit: TEdit; Label4: TLabel; CompanyNameEdit: TEdit; ExpiryDateDateTimePicker: TDateTimePicker; Label2: TLabel; RegistrationCode1Edit: TEdit; RegistrationCode2Edit: TEdit; RegistrationCode3Edit: TEdit; RegistrationCode4Edit: TEdit; Label3: TLabel; UnlimitedCheckBox: TCheckBox; AccountsCheckBox: TCheckBox; POSCheckBox: TCheckBox; DocumentsCheckBox: TCheckBox; procedure FormShow(Sender: TObject); procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure OkBitBtnClick(Sender: TObject); procedure UnlimitedCheckBoxClick(Sender: TObject); procedure Label3Click(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } function Register : boolean; end; var RegisterForm: TRegisterForm; implementation uses GeneralUtilities, Globals, Utilities, DatabaseManager, RegistrationInfo; {$R *.dfm} function TRegisterForm.Register : boolean; begin Result := (ShowModal = mrOk); end; procedure TRegisterForm.OkBitBtnClick(Sender: TObject); begin if not CheckRegistrationCode (CompanyNameEdit.Text, ExpiryDateDateTimePicker.Date, StrToIntDef(NoOfWorkstationsEdit.Text,0), UnlimitedCheckBox.Checked, AccountsCheckBox.Checked, POSCheckBox.Checked, DocumentsCheckBox.Checked, RegistrationCode1Edit.Text, RegistrationCode2Edit.Text, RegistrationCode3Edit.Text, RegistrationCode4Edit.Text) then begin MessageDlg('Registration incorrect',mtError,[mbOk],0); ModalResult := mrNone; end else begin GlobalConfiguration.CompanyName := CompanyNameEdit.Text; GlobalConfiguration.ExpiryDate := ExpiryDateDateTimePicker.Date; GlobalConfiguration.NoOfWorkstations := StrToIntDef(NoOfWorkstationsEdit.Text,0); GlobalConfiguration.Unlimited := UnlimitedCheckBox.Checked; GlobalConfiguration.Accounts := AccountsCheckBox.Checked; GlobalConfiguration.POS := POSCheckBox.Checked; GlobalConfiguration.Documents := DocumentsCheckBox.Checked; GlobalConfiguration.RegistrationCode1 := RegistrationCode1Edit.Text; GlobalConfiguration.RegistrationCode2 := RegistrationCode2Edit.Text; GlobalConfiguration.RegistrationCode3 := RegistrationCode3Edit.Text; GlobalConfiguration.RegistrationCode4 := RegistrationCode4Edit.Text; // record global configuration SaveGlobalConfiguration; end; end; procedure TRegisterForm.FormShow(Sender: TObject); begin CompanyNameEdit.Text := GlobalConfiguration.CompanyName; ExpiryDateDateTimePicker.Date := GlobalConfiguration.ExpiryDate; NoOfWorkstationsEdit.Text := FormatCount(GlobalConfiguration.NoOfWorkstations); UnlimitedCheckBox.Checked := GlobalConfiguration.Unlimited; AccountsCheckBox.Checked := GlobalConfiguration.Accounts; POSCheckBox.Checked := GlobalConfiguration.POS; DocumentsCheckBox.Checked := GlobalConfiguration.Documents; RegistrationCode1Edit.Text := GlobalConfiguration.RegistrationCode1; RegistrationCode2Edit.Text := GlobalConfiguration.RegistrationCode2; RegistrationCode3Edit.Text := GlobalConfiguration.RegistrationCode3; RegistrationCode4Edit.Text := GlobalConfiguration.RegistrationCode4; ExpiryDateDateTimePicker.Enabled := not GlobalConfiguration.Unlimited; NoOfWorkstationsEdit.Enabled := not GlobalConfiguration.Unlimited; CompanyNameEdit.SetFocus; end; procedure TRegisterForm.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if Key = VK_ESCAPE then begin Close; Key := 0; end; end; procedure TRegisterForm.UnlimitedCheckBoxClick(Sender: TObject); begin ExpiryDateDateTimePicker.Enabled := not UnlimitedCheckBox.Checked; NoOfWorkstationsEdit.Enabled := not UnlimitedCheckBox.Checked; end; procedure TRegisterForm.Label3Click(Sender: TObject); var RegistrationCode1 : string; RegistrationCode2 : string; RegistrationCode3 : string; RegistrationCode4 : string; begin if not GenerateRegCodes then Exit; GenerateRegistrationCode (CompanyNameEdit.Text, ExpiryDateDateTimePicker.Date, StrToIntDef(NoOfWorkstationsEdit.Text,0), UnlimitedCheckBox.Checked, AccountsCheckBox.Checked, POSCheckBox.Checked, DocumentsCheckBox.Checked, RegistrationCode1, RegistrationCode2, RegistrationCode3, RegistrationCode4); RegistrationCode1Edit.Text := RegistrationCode1; RegistrationCode2Edit.Text := RegistrationCode2; RegistrationCode3Edit.Text := RegistrationCode3; RegistrationCode4Edit.Text := RegistrationCode4; RegistrationInfoForm.Memo.Lines.Clear; RegistrationInfoForm.Memo.Lines.Add('----------------------------------------------------------------------'); RegistrationInfoForm.Memo.Lines.Add(' ' + ProgramName + ' Registration Details'); RegistrationInfoForm.Memo.Lines.Add('----------------------------------------------------------------------'); RegistrationInfoForm.Memo.Lines.Add(' Company Name: ' + CompanyNameEdit.Text); if not UnlimitedCheckBox.Checked then begin RegistrationInfoForm.Memo.Lines.Add(' Expiry Date: ' + FormatDateTime('dd/mm/yyyy',ExpiryDateDateTimePicker.Date)); RegistrationInfoForm.Memo.Lines.Add(' No of Workstations: ' + IntToStr(StrToIntDef(NoOfWorkstationsEdit.Text,0))); end else begin RegistrationInfoForm.Memo.Lines.Add(' Unlimited'); end; if AccountsCheckBox.Checked then RegistrationInfoForm.Memo.Lines.Add(' General Ledger'); if POSCheckBox.Checked then RegistrationInfoForm.Memo.Lines.Add(' POS'); if DocumentsCheckBox.Checked then RegistrationInfoForm.Memo.Lines.Add(' Documents'); RegistrationInfoForm.Memo.Lines.Add('----------------------------------------------------------------------'); RegistrationInfoForm.Memo.Lines.Add(' Registration Code: ' + RegistrationCode1 + ' ' + RegistrationCode2 + ' ' + RegistrationCode3 + ' ' + RegistrationCode4); RegistrationInfoForm.Memo.Lines.Add('----------------------------------------------------------------------'); RegistrationInfoForm.Memo.SelectAll; RegistrationInfoForm.Show; RegistrationInfoForm.Memo.SetFocus; end; procedure TRegisterForm.FormCreate(Sender: TObject); begin {$IFNDEF ACCOUNTS} AccountsCheckBox.Visible := false; {$ENDIF} {$IFNDEF POS} POSCheckBox.Visible := false; {$ENDIF} {$IFNDEF DOCUMENTS} DocumentsCheckBox.Visible := false; {$ENDIF} Caption := 'Register ' + ProgramName; end; end.