...save / load TFont information to an INI file?

Author: Mike Shkolnik
Homepage: http://www.scalabium.com

Category: Files

uses
  
Inifiles;

procedure SaveFont(FName: string; Section: string; smFont: TFont);
var
  
FStream: TIniFile;
begin
  
FStream := TIniFile.Create(FName);
  try
    
FStream.WriteString(Section, 'Name', smFont.Name);
    FStream.WriteInteger(Section, 'CharSet', smFont.CharSet);
    FStream.WriteInteger(Section, 'Color', smFont.Color);
    FStream.WriteInteger(Section, 'Size', smFont.Size);
    FStream.WriteInteger(Section, 'Style', Byte(smFont.Style));
  finally
    
FStream.Free;
  end;
end;

procedure LoadFont(FName: string; Section: string; smFont: TFont);
var
  
FStream: TIniFile;
begin
  
FStream := TIniFile.Create(Fname);
  try
    
smFont.Name    := FStream.ReadString(Section, 'Name', smFont.Name);
    smFont.CharSet := TFontCharSet(FStream.ReadInteger(Section, 'CharSet', smFont.CharSet));
    smFont.Color   := TColor(FStream.ReadInteger(Section, 'Color', smFont.Color));
    smFont.Size    := FStream.ReadInteger(Section, 'Size', smFont.Size);
    smFont.Style   := TFontStyles(Byte(FStream.ReadInteger(Section, 'Style', Byte(smFont.Style))));
  finally
    
FStream.Free;
  end;
end;

//Example:
//Beispiel:

//Save Font
procedure TForm1.Button1Click(Sender: TObject);
begin
  
SaveFont('font.ini', 'label', label1.Font);
end;

procedure TForm1.Label1DblClick(Sender: TObject);
begin
  if 
FontDialog1.Execute then
    
label1.Font := FontDialog1.Font
end;

//Load Font
procedure TForm1.Button2Click(Sender: TObject);
begin
  
LoadFont('font.ini', 'label', label1.Font);
end;

 

printed from
www.swissdelphicenter.ch
developers knowledge base