フォント (FontStyle、FontColor、FontSize) を SQL データベースに保存したいのですが、これを行うには、これを文字列として保存する必要があります。TfontをTStringに変換するにはどうすればよいですか?
2189 次
3 に答える
3
フォントパラメータを文字列として保存する必要は本当にありますか? フォントを BLOB として保存することを提案できます。
procedure SaveFontToStream(AStream: TStream; AFont: TFont);
var LogFont: TLogFont;
Color: TColor;
begin
if GetObject(AFont.Handle, SizeOf(LogFont), @LogFont) = 0 then
RaiseLastOSError;
AStream.WriteBuffer(LogFont, SizeOf(LogFont));
Color := AFont.Color;
AStream.WriteBuffer(Color, SizeOf(Color));
end;
procedure LoadFontFromStream(AStream: TStream; AFont: TFont);
var LogFont: TLogFont;
F: HFONT;
Color: TColor;
begin
AStream.ReadBuffer(LogFont, SizeOf(LogFont));
F := CreateFontIndirect(LogFont);
if F = 0 then
RaiseLastOSError;
AFont.Handle := F;
AStream.ReadBuffer(Color, SizeOf(Color));
AFont.Color := Color;
end;
いずれにせよ、ストリームを16進シーケンスに変換できます。
于 2013-11-27T16:19:19.313 に答える