Property Saver is set of non visual components which allows you to centralize and automates saving and restoring of windows position, properties of visual or non visual components and any other user defined values. Benefits:
Property Saver support storing of forms and standard components settings without line of code (TForm, TEdit, TMemo, TListBox, TComboBox, TRadioButton, TRadioGroup, TCheckBox, TMenuItem). Other components can be managed by already created descendant components (TGridsPropSave, TDBGridPropSave) or you can create very easily your own component supporting any type of components (TMS, 3rd party...). Any other values can be saved manually by events OnReadProperties and OnSaveProperties.
All settings are stored in INI file or compressed BZIP file. Its name can be set up at design time or runtime, so it's very easy to use this package in multi user application, when users share the same files but with his own INI file and therefore with his own configuration.
See simple example in video:
Using of Property Saver
PropSaveFile1.Clear; // clear contents of ini file
PropSaveFile1.SaveFile(''); // save empty file
PropSaveFile1.DisableAll:=true; // don't save properties until close app
ShowMessage('Close the application and run again with default values.'); // inform user
procedure ReadSaveProps(A: TPropSaveAction; PSFile: TPropSaveFile; Key: string; Comp: TComponent); override;
function CanSave(Comp: TComponent): boolean; override;
See GridsPropSave.pas file for example.