AnsiChar and WideChar support in WST runtime

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@560 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
inoussa
2008-09-15 02:30:43 +00:00
parent 1e95624282
commit 2cb02c46ec
6 changed files with 696 additions and 19 deletions

View File

@ -35,6 +35,8 @@ Type
{$IFDEF WST_UNICODESTRING}
TUnicodeStringData = UnicodeString;
{$ENDIF WST_UNICODESTRING}
TAnsiCharacter = AnsiChar;
TWideCharacter = WideChar;
TFloat_Single_4 = Single;
TFloat_Double_8 = Double;
@ -56,6 +58,8 @@ Type
procedure WriteInt64S(Const AData : TInt64S);
procedure WriteBool(Const AData : TBoolData);
procedure WriteAnsiChar(const AData : TAnsiCharacter);
procedure WriteWideChar(const AData : TWideCharacter);
procedure WriteEnum(Const AData : TEnumData);
procedure WriteAnsiStr(Const AData : TAnsiStringData);
procedure WriteWideStr(Const AData : TWideStringData);
@ -85,6 +89,8 @@ Type
function ReadInt64S():TInt64S;
function ReadBool():TBoolData;
function ReadAnsiChar() : TAnsiCharacter;
function ReadWideChar() : TWideCharacter;
function ReadEnum():TEnumData;
function ReadAnsiStr():TAnsiStringData;
function ReadWideStr():TWideStringData;
@ -217,6 +223,8 @@ Type
procedure WriteInt64S(Const AData : TInt64S);
procedure WriteBool(Const AData : TBoolData);
procedure WriteAnsiChar(const AData : TAnsiCharacter);
procedure WriteWideChar(const AData : TWideCharacter);
procedure WriteEnum(Const AData : TEnumData);
procedure WriteAnsiStr(Const AData : TAnsiStringData);
procedure WriteWideStr(Const AData : TWideStringData);
@ -252,6 +260,8 @@ Type
function ReadInt64S():TInt64S;
function ReadBool():TBoolData;
function ReadAnsiChar() : TAnsiCharacter;
function ReadWideChar() : TWideCharacter;
function ReadEnum():TEnumData;
function ReadAnsiStr():TAnsiStringData;
function ReadWideStr():TWideStringData;
@ -380,6 +390,16 @@ begin
WriteInt8U(i);
end;
procedure TDataStore.WriteAnsiChar(const AData: TAnsiCharacter);
begin
WriteInt8U(Ord(AData));
end;
procedure TDataStore.WriteWideChar(const AData: TWideCharacter);
begin
WriteInt16U(Ord(AData));
end;
procedure TDataStore.WriteEnum(const AData: TEnumData);
begin
WriteInt64S(AData);
@ -558,6 +578,16 @@ begin
Result := ( ReadInt8U() > 0 );
end;
function TDataStoreReader.ReadAnsiChar(): TAnsiCharacter;
begin
Result := TAnsiCharacter(ReadInt8U());
end;
function TDataStoreReader.ReadWideChar(): TWideCharacter;
begin
Result := TWideCharacter(ReadInt16U());
end;
function TDataStoreReader.ReadEnum(): TEnumData;
begin
Result := ReadInt64S();