LockIt Version 1.0.0.1 (Beta)

LockIt is a Delphi / C++ Builder Shareware registration component and is released as 
freeware while in Beta development.  While the component is freeware there are some slight 
limitations imposed on its functionality. Firstly, the trial period days property is a maximum of 
14 days, and after a period of 6 months, the component will display our Splash screen when 
applications compiled with the component are run.  This will display for 10 seconds before 
the application will run.  In all other aspects the component functions normally.

The component comes with a Keycode generator, so that you can generate the unique 
codes for your users.  Eventually there will be a full help system included but for the moment 
this readme file is all written information you have.  You can contact us via email for 
assistance at 'support@kinsonsoft.freewire.co.uk' if you require information that is not 
included in this file.  Our web site is 'www.kinsonsoft.freewire.co.uk' and we will be posting 
the latest information on the 'News Page' and updated versions on the 'Downloads page'.

Installation

To install the component you can either select 'Install Component' from the 'Component' 
Menu and select 'LockItReg.pas' and install into a new or existing package, or you can 
open 'Lock.dpk'  and compile the package.

How to use.

Do not change the value of the 'CLSID' property, this value is generated 
automatically and is central to the correct operation of the component.  In future 
releases, it is to be a hidden value, but as yet we have been unable to get this to 
operate reliably.  

LockIt has been designed to be very easy to use.  Just place the component on a form and 
the Wizard will automatically run.  LockIt is based around an 'About' form, therefore you 
do not need to add your own 'About' form to your project.  You can supply a summary of 
what your Application is in the 'Comments' memo.  When the 'About' form shows, it will 
display this information to the user.  Then you can enter a 'Caption' for the 'About' form, if 
you leave this blank the default value would be 'About [Application Name]' where 
Application Name is the name of the application that the component is compiled with.  Then 
you can allocate how many days 'Trial Period' the users of your Application have, (this is 
limited to 14 days during Beta development). You can also select if the Application will 
cease to run at the end of this trial period.  You can add your own image for the 'About' 
form, this is best viewed when the image is 300 pixels wide and 200 pixels high.  You can 
then determine if the 'Splash Screen' shows when the Application is run (if the component is 
not registered, this is always true) but registration keys are free during Beta testing and can 
be obtained via email. Just email us at 'support@kinsonsoft.freewire.co.uk' stating your 
NAME, COMPANY NAME if applicable, and your EMAIL address, and we will send 
you your unique registration key by return.  Next you can change the 'Unique Key' this will 
vary the 'Keycode' generated by the component.  If you change this from the default value 
of 1, remember to change this value with the Keycode generator when generating the 
individual codes for your Application users, or their registrations will fail.  Enter the 
'Version' of your application, this number is displayed in the 'About' form, and is also used 
as part of the encryption process for the generated Keycode.  This is useful when you 
release new versions of your Applications, and you do not want the previous Keycodes to 
work with the new version.  If you require them to work, just leave the 'Version' the same, 
or you could supply your users with updated Keycodes.  You are then able to either 
'Commit' any changes you have made, or 'Cancel' them.

To display the 'About' form you call the components 'Execute' method.
Probably the best way is to add a 'Menu' component to the form and add a 'Help' menu 
option and an 'About' item to this.  In the 'Onclick' event of the 'About' item just add this 
code  'LockIt.Execute'  remember that when the component is added to the form this will 
be 'LockIt1.Execute'.  This will display the 'About' from, and depending on various criteria 
that the component detects, will depend on what is displayed to the user.  If the Application 
is not registered, the 'About' form will display the register dialog.  The user can enter their 
details at this point to register the Application.  If the Application is registered, the the 
'About' form displays the 'About' tab with the details of the Application and the 
'Registration' details Tab which displays the details orelating to the registered User, 
Organisation (if applicable) date of registration and license number.

Behind the scenes, LockIt is validating all sorts of criteria to ensure that you the Application 
developer can achieve improved registrations for your Applications, and that in return means 
improved revenue.  There really is very little you the Application developer need to do, we 
have designed LockIt to be as simple to use and administer as possible, so you can get on 
with the more serious task of developing your Applications.

However, you can add more functionality if you so desire.  LockIt has seven events that can 
be utilised to change the default actions of the component. 

OnRegistrationFailure
This Event generates a return type, the type is either 'amManual' this is when the 
user enters the registration details which are not correct or 'amAuto' which is 
returned automatically when the Application is run if it is not registered.  You can 
add code at this point that could for example display a dialog box, or set a Boolean 
value or even terminate the Application.
OnRegistrationSuccess
	This event also returns the same types and you can code in the same way.  Consider 
this code

	procedure TApplicationForm.LockIt1RegistrationFailure(Sender: TObject;
  	RegMode: TRegMode);
begin
		if RegMode = amManual then
			ShowMessage('Your registration has failed')
end;

If the user manually enters details into the registration dialog and they are not 
correct, a messagebox appears stating 'Your registration has failed'.  So these 
return types are very useful.

OnSystemClockBack
The component will detect if the system clock has been turned back which could 
enable the user to continually wind the system clock back and continue to use your 
application, therefore code can be added here to do what ever you require if this 
event is triggered.

OnSystemClockForward
	The same as above but of course the change this time is in the opposite direction.

OnTerminate
	This event is generated if the 'Expires' property is set to true, and the 'TrialDays' 
property has been exceeded.

OnTrialExpired
	This event is triggered when the trial period has elapsed.

OnTrialPeriod
If the Application has not been registered, and is still within the 'TrialDays' period 
this event is triggered.  This can be useful to set various values that will change when 
the trial period expires i.e. set a Boolean value to true so that reports could be 
printed, this value would revert to false when this event is no longer triggered.

There you have it, simple to use, effective and currently free.  We are seeking 'Beta Testers' 
to evaluate and feedback information to us relating to this component, if you are interested in 
helping with this, there are details on our web site for your participation in this program.  
There are benefits to be gained from this so please visit our site and view the details.

Included in the zip is 'Dsgnintf.dcu' for those who have not got it.
