![]() |
![]() ![]() ![]() ![]() |
|
Сохранить шрифт в реестр или в потокDelphi , Графика и Игры , ШрифтыСохранить шрифт в реестр или в поток
Оформил: DeeCo
type
FontRec = packed record
Color: TColor;
LogFont: TLogFont;
end;
// Save a font to the registry
// Eine Schrift in die Registry speichern
procedure SaveFontToReg(reg: TRegistry; const key, id: string; Font: TFont);
var
fRec: FontRec;
begin
if Windows.GetObject(Font.Handle, SizeOf(fRec.LogFont), @fRec.LogFont) > 0 then
begin
if reg.OpenKey(key, True) then
try
fRec.Color := Font.Color;
reg.WriteBinaryData(id, fRec, SizeOf(fRec));
finally
reg.CloseKey;
end;
end;
end;
// Load a font from the registry
// Eine Schrift von der Registry laden
procedure LoadFont(reg: TRegistry; const key, id: string; Font: TFont);
var
fRec: FontRec;
begin
if reg.OpenKey(key, False) then
try
if reg.ReadBinaryData(id, frec, SizeOf(fRec)) = SizeOf(fRec) then
Font.Handle := CreateFontIndirect(fRec.LogFont);
Font.Color := fRec.Color;
finally
reg.CloseKey;
end;
end;
// Save a font to a stream
// Eine Schrift in einen Stream speichern
procedure WriteFontToStream(s: TStream; Font: TFont);
var
fRec: FontRec;
sz: integer;
begin
sz := SizeOf(fRec.LogFont);
if Windows.GetObject(Font.Handle, sz, @fRec.LogFont) > 0 then
begin
s.Write(sz, SizeOf(Integer));
fRec.Color := Font.Color;
s.Write(fRec, SizeOf(fRec));
end
else
begin
sz := 0;
s.Write(sz, SizeOf(Integer));
end;
end;
// Read a font from a stream
// Eine Schrift von einem Stream laden
procedure ReadFont(s: TStream; Font: TFont);
var
fRec: FontRec;
sz: integer;
begin
s.read(sz, SizeOf(Integer));
if sz = SizeOf(fRec.LogFont) then
begin
s.read(fRec, SizeOf(fRec));
Font.Handle := CreateFontIndirect(fRec.LogFont);
Font.Color := fRec.Color;
end;
end;
Программный код на Delphi, который обеспечивает методы для сохранения и загрузки шрифтов в реестре или потоке. SaveFontToRegПроцедура
Процедура сначала проверяет, можно ли получить handle шрифта с помощью LoadFontПроцедура
Процедура сначала открывает указанный ключ реестра и читает информацию о цвете и логическом формате шрифта с помощью WriteFontToStreamПроцедура
Процедура сначала проверяет, можно ли получить handle шрифта с помощью ReadFontПроцедура
Процедура сначала читает размер логического формата из потока с помощью Замечания
Данная статья описывает функции для сохранения и чтения шрифтов в реестре Windows или потоке, написанные на языке Delphi. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 | ||||