It is easier to explain, when we look at an example. Here are the settings of the Event Log:
[EventLog]
Settings=1
Setting0=FileName
FileName_Default=
FileName_ValueList=
FileName_PropertyName=FileName
FileName_Hint=
FileName_SettingType=0
FileName_EnforceValues=0
Setting1=MaxSize
MaxSize_Default=50
MaxSize_ValueList=
MaxSize_PropertyName=MaxSize
MaxSize_Hint=
MaxSize_SettingType=1
MaxSize_EnforceValues=0
FileName_Value=
MaxSize_Value=50
The first thing to look at is the category name. It has to be the Name of the actual Delphi component in the server, in this case Event Log.
Next we have the Settings=1 line, which indicates that the component has 2 (! it is 0 based, 1 being the highest index) settings.
According to that you will find a Setting0 and a Setting1 line, which return the name of the setting.
Now we look at the actual setting itself. We take a closer look at the FileName setting. You'll find a number of entries starting with it's name follow by an underscore and a name for each of it's properties. Here's the list of the currently supported properties. This list might change at any time as each component (e.g third-party) can (and a few do) save any information it wants to with this schema.
_Value |
The actual value of the setting, which will be stored as a string representation of the _SettingType property. |
_Default |
The default value of the setting, if _Value is not defined |
_ValueList |
A comma delimited list of possible values for the setting. |
_EnforceValues |
This works together with _EnforceValues. If set to 1 the user only values of the list should be accepted as actual values. |
_Hint |
A hint to be shown in a UI. |
_SettingType |
The type of the setting. Currently there are the following types defined: TnxSettingType = ( { string - 0 } nxstString, { integer - 1 } nxstInteger, { Boolean - 2 } nxstBoolean, { Stream - 3 } nxstStream, { Selection List - 4 } nxstList, { Thread Priority - 5} nxstThreadPriority, { Radio Button - 6 } nxstSingleOption, { Checkboxes - 7 } nxstMultiOption ); |
_PropertyName |
The name of actual property of the implementing component. This can be used to use reflection to apply the settings. |
_Label |
the label that the UI should show. |