mirror of
https://gitlab.com/freepascal.org/fpc/pas2js.git
synced 2025-04-13 16:49:22 +02:00
* correctly stream TStrings based properties
This commit is contained in:
parent
d19e385f71
commit
b8155b93cb
@ -272,7 +272,10 @@ type
|
||||
procedure SetLineBreak(const S : String);
|
||||
Function GetSkipLastLineBreak : Boolean;
|
||||
procedure SetSkipLastLineBreak(const AValue : Boolean);
|
||||
procedure ReadData(Reader: TReader);
|
||||
procedure WriteData(Writer: TWriter);
|
||||
protected
|
||||
procedure DefineProperties(Filer: TFiler); override;
|
||||
procedure Error(const Msg: string; Data: Integer);
|
||||
function Get(Index: Integer): string; virtual; abstract;
|
||||
function GetCapacity: Integer; virtual;
|
||||
@ -2686,6 +2689,44 @@ begin
|
||||
FSkipLastLineBreak:=AValue;
|
||||
end;
|
||||
|
||||
procedure TStrings.ReadData(Reader: TReader);
|
||||
begin
|
||||
Reader.ReadListBegin;
|
||||
BeginUpdate;
|
||||
try
|
||||
Clear;
|
||||
while not Reader.EndOfList do
|
||||
Add(Reader.ReadString);
|
||||
finally
|
||||
EndUpdate;
|
||||
end;
|
||||
Reader.ReadListEnd;
|
||||
end;
|
||||
|
||||
procedure TStrings.WriteData(Writer: TWriter);
|
||||
var
|
||||
i: Integer;
|
||||
begin
|
||||
Writer.WriteListBegin;
|
||||
for i := 0 to Count - 1 do
|
||||
Writer.WriteString(Strings[i]);
|
||||
Writer.WriteListEnd;
|
||||
end;
|
||||
|
||||
procedure TStrings.DefineProperties(Filer: TFiler);
|
||||
var
|
||||
HasData: Boolean;
|
||||
begin
|
||||
if Assigned(Filer.Ancestor) then
|
||||
// Only serialize if string list is different from ancestor
|
||||
if Filer.Ancestor.InheritsFrom(TStrings) then
|
||||
HasData := not Equals(TStrings(Filer.Ancestor))
|
||||
else
|
||||
HasData := True
|
||||
else
|
||||
HasData := Count > 0;
|
||||
Filer.DefineProperty('Strings', @ReadData, @WriteData, HasData);
|
||||
end;
|
||||
|
||||
function TStrings.GetLBS: TTextLineBreakStyle;
|
||||
begin
|
||||
|
Loading…
Reference in New Issue
Block a user