Ich weiß nicht, ob das Probleme mit dem Streamen macht, aber du kannst doch einfach die UnicodeStrings als normale string-properties deklarieren und den nötigen Copy-Aufwand in die Getter und Setter packen.
Delphi-Quellcode:
type
TUString255 = Array [0..255] of WideChar;
TMyRecord = record
private
FWert: integer;
FUnicodeString1: TUString255;
FUnicodeString2: TUString255;
function GetUnicodeString1: string;
function GetUnicodeString2: string;
procedure SetUnicodeString1(const Value: string);
procedure SetUnicodeString2(const Value: string);
public
property UnicodeString1: string read GetUnicodeString1 write SetUnicodeString1;
property UnicodeString2: string read GetUnicodeString2 write SetUnicodeString2;
property Wert: integer read FWert write FWert;
end;
function TMyRecord.GetUnicodeString1: string;
begin
Result := FUnicodeString1;
end;
function TMyRecord.GetUnicodeString2: string;
begin
Result := FUnicodeString2;
end;
procedure TMyRecord.SetUnicodeString1(const Value: string);
begin
StrPCopy(@FUnicodeString1[0], Value);
end;
procedure TMyRecord.SetUnicodeString2(const Value: string);
begin
StrPCopy(@FUnicodeString2[0], Value);
end;