Thanks Norman,
Just downloaded to see what I can use in the future. There is one line of code needing change.
In Preferences module FontandColorTheme class asXML method the line
Strings.append MakeEntry( nameOf(Members.CodeEditorFont), str(CodeEditorFont ) )
should be
Strings.append MakeEntry( nameOf(Members.CodeEditorFont), CodeEditorFont )
You have double 0 at the end of the string you build which is reassembled differently in the split. You’ll need to drop the additional 0 from the write and the last entry of the split from the read.
Not really sure why you are string building with 0’s when you can go via a wstring which does this for you.
All this in WriteStringArray:
Dim value As String
For i As Integer = 0 To arr.Ubound
If i > 0 Then
value = value + ChrB(0)
End If
value = value + arr(i)
Next
value = value + ChrB(0) + ChrB(0)
Dim mbValue As memoryblock = value
reg.Value(key) = mbValue
can be replaced with
Dim value As String
For Each s As String In arr()
value = value + CType(s, WString)
Next s
reg.Value(key) = CType(value, MemoryBlock)
then don’t forget to drop the last entry of the split on the read.