做一个小项目中,要将TFont保存下来,想使用JSON格式,所以写了两个函数进行互相转换!
function FontToJson(AFont: TFont): string;
var
Json: ISuperObject;
begin
Json := so;
Json.s['name'] := AFont.Name;
Json.I['size'] := AFont.Size;
Json.I['color'] := AFont.Color;
Json.B['bold'] := fsBold in AFont.Style;
Json.B['italic'] := fsItalic in AFont.Style;
Json.B['underline'] := fsUnderline in AFont.Style;
Result := Json.AsString;
end;
function JsonToFont(AJson: string): TFont;
var
Json: ISuperObject;
begin
Result := TFont.Create;
Json := so(AJson);
Result.Name := Json.s['name'];
Result.Size := Json.I['size'];
Result.Color := Json.I['color'];
if Json.B['bold'] then
Result.Style := Result.Style + [fsBold]
else
Result.Style := Result.Style - [fsBold];
if Json.B['italic'] then
Result.Style := Result.Style + [fsItalic]
else
Result.Style := Result.Style - [fsItalic];
if Json.B['underline'] then
Result.Style := Result.Style + [fsUnderline]
else
Result.Style := Result.Style - [fsUnderline];
end;