PBSharePack.

Author: Poul Bak
Copyright  2003 - 2004 : Bak-O-Soft (Poul Bak). All rights reserved.
http://bak-o-soft.dk/
Mailto:info@bak-o-soft.dk

Component Version: 5.00.00.00

-------------------------------------------------------------------------------------------------------------------------------------
1.10.00.00	The first public release.

-------------------------------------------------------------------------------------------------------------------------------------
1.20.00.00	Fixed a bug concerning 'InterProcess' when creating components at runtime.
		Now the order, in which you set properties, is of no importance.

		Fixed a bug in TPBShareStringList regarding AutoUpdate.

		Changed constructors 'CreateNoOwner' and 'CreateNoEvents' in 
		TPBShareStringList.

-------------------------------------------------------------------------------------------------------------------------------------
1.30.00.00	Made WriteAll proc public in TPBShareStringList and TPBShareMemIni !

-------------------------------------------------------------------------------------------------------------------------------------
1.40.00.00	Fixed a bug concerning resizing and access-rights in Windows NT/2000/XP.
		The bug prevented the share from resizing.

-------------------------------------------------------------------------------------------------------------------------------------
1.50.00.00	Fixed a bug that under some circumstances would cause an error to be raised.

-------------------------------------------------------------------------------------------------------------------------------------
1.60.00.00	The shared memory is now locked while the update message is processed.
		Originally designed so to boost performance, but could lead to other components
		changing the shared memory (and hence triggering a new update-event)
		before you had finished using the data.
		My tests show no performance penalty using the safe method so ........

-------------------------------------------------------------------------------------------------------------------------------------
2.00.00.00	It is now possible to call one of the Write methods (WriteAll for 
		PBCustomSingleShare descendants - and Add, Delete, Insert, WriteItem for 
		PBCustomMultiShare descendants) from within the OnUpdate event-handler.
		This gives you the chance to use 'ask-answer' sequences by changing a
		variable in response to an update message.

		Added 'IsLocked' function. Tells you if the shared memory is locked without 
		changing the status.

-------------------------------------------------------------------------------------------------------------------------------------
3.00.00.00	Fixed some bugs concerning resizing. When stressing the component it could
 		cause some strange behaviour.

		Changed InterProcess property. Now part of the new Flags property - a set.
		Besides 'sfInterProcess' it currently has 'sfUpdateOnOpen' as member which
		determines if the component should trigger the OnUpdate event when it opens
		2nd and 3rd etc instance.

		Added new property: ShareFunction : TShareFunction = (sfReader,
		sfAutoSwitch, sfWriter). 
		Determines the function of the component.

-------------------------------------------------------------------------------------------------------------------------------------
4.00.00.00	A major upgrade. Added Singlewrite-multiread access locks to improve
		performance. Only one can write to the memory, but many can read 
		simultaniously. 

		New flags: 
		sfAsynchronUpdate: Now you can use asynchron updating, if you
		prefer. The benefit is you never get message-recursions. The downside is 
		synchronization is not guarantied (the reading component might not have read
		the change when the writing component changes it again).
		sfNeverResizeDown: The component only resizes when it needs more memory,
		not when it can save memory. When sharing small variables with frequent 
		changes, it can improve performance.

		Added 2 new demos: 
		BasicDemo, a simple app showing how to share programsettings using 
		PBShareSingle component.
		ThreadDemo shows how to use PBShare components in a multithreaded
		application. The threads MUST process messages and this is shown in the 
		demo. The thread unit can easily be used as a prototype.

		Split into Designtime package (PBSharePack.dpk) and runtime package
		(PBSharePackRun.dpk) making it easier if you plan to use runtime packages.

-------------------------------------------------------------------------------------------------------------------------------------
4.10.00.00	A small bug fix concerning the OnUpdateShareList event when closing the 
		share.

-------------------------------------------------------------------------------------------------------------------------------------
4.20.00.00	A bug fix only concerning Delphi 5 conditional defines, preventing compilation
		in Delphi 5. 

-------------------------------------------------------------------------------------------------------------------------------------
4.30.00.00	Fixed a bug in TPBShareMulti concerning Index in event-handlers.

		Fixed a bug in TPBReader and TPBWriter.

		Improved messageprocessing.

-------------------------------------------------------------------------------------------------------------------------------------
4.30.00.00	New flag: sfAutoRepairList (default = checked).
		Determines whether the components should check if another application
		terminates abnormally (and then repair the list of shares).

-------------------------------------------------------------------------------------------------------------------------------------
4.40.00.00	New public property: ShareIndex, returns the share's index in the list of shares
		(useful in the OnOpenShare and OnShareListChange event-handlers).
		
		Added LazyCloseShare message, posted to the share, if you try to close the
		share, while it's processing another message - could lead to AV. Now it will 
		schedule closing.

-------------------------------------------------------------------------------------------------------------------------------------
4.41.00.00	Just changed some documentation - no need to upgrade.

-------------------------------------------------------------------------------------------------------------------------------------
5.00.00.00	Fixed a bug in RemoteControl - when the sending share wasn't open it could
		lead to an access violation. Now you can use RemoteControl in all cases.

		Also RemoteControl: runtime creation of shares using 'Create(nil)' resulted in
		RemoteControl not working.

		Added new demo: RemoteControlDemo to show how RemoteControl works.

		Fixed a bug in TPBShareMulti and descendants. In the OnDoReadItem and 			the OnDoWriteItem event-handlers the Sender parameter pointed to an internal 		object, not the component itself, as normal Delphi praxis.

		Added version-check. When opening the share it checks whether the other
		shares (with the same name) have the same major version number (the number
		before the dot). If this wasn't the case, it could lead to unpredictable result. 
		If you see this exception, simply recompile all applications using this share.

		In the past any attemp to read from/write to a closed share was simply ignored.
		Now an exception is raised. Use the 'IsOpen' function to check.

		The component no longer automatically switches to asynchron update. Instead
		it throws an exception if you create a message-recursion - that will occur if you
		try to write to the share from inside an OnUpdate event-handler and the
		'sfAsynchronUpdate' flag is not set. If you need to write to the share this way,
		set the 'sfAsynchronUpdate' flag for that share.

		Simplified the registered messages when using multiple PBShares at the same
		time - since no broadcasting occurs, they can use the same messages. 
		This, however makes this version totally incompatible with earlier versions.
