お知らせ

電子会議

ライブラリ

パレット

Delphi FAQ検索

Delphi FAQ一覧

サンプル蔵





FDelphi FAQ
16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル

"IniFileにフォントを保存・復帰"



<<フォント>
{パラメータ aControlにフォントを保存したいコントロールの Nameプロ
パティ、aFontにそのコントロールの Fontプロパティを指定します。

   例: IniSaveFont(Form1, Form1.Font);
        IniSetFont(Form1, Form1.Font);

absolute指令は、特定のメモリアドレスに位置する変数を宣言します。
ここでは、TFontStyles型変数 FStyleと同じメモリアドレスを持つ変数と
して Byte型変数 Fsを宣言しています。
こうすることにより型互換性のない変数間で値の受け渡しを実現している
・・のではないか・・と思う・・多分・・
}

// コントロールのフォントを保存する
procedure IniSaveFont(aControl: TControl; aFont: TFont);
var
  Ini: TInifile;
  FStyle: TFontStyles;
  Fs: Byte absolute FStyle; 
begin
  try
    Ini:= TInifile.Create(ChangeFileExt(ParamStr(0),'.ini'));
    with Ini, aControl do
    begin
      WriteString('Fonts', Name + 'FontName', aFont.Name);
      WriteInteger('Fonts', Name + 'FontSize', aFont.Size);
      WriteInteger('Fonts', Name + 'FontColor', aFont.Color);
      FStyle:= aFont.Style;
      WriteInteger('Fonts', Name + 'FontStyle', Fs);
    end;
  finally
    ini.Free;
  end;
end;

// 保存したフォントをコントロールにセットする
procedure IniSetFont(aControl: TControl; aFont: TFont);
var
  Ini: TInifile;
  FStyle: TFontStyles;
  Fs: Byte absolute FStyle;
begin
  try
    Ini:= TInifile.Create(ChangeFileExt(ParamStr(0),'.ini'));
    with Ini, aControl do
    begin
      aFont.Name:= ReadString('Fonts', Name + 'FontName', aFont.Name);
      aFont.Size:= ReadInteger('Fonts', Name + 'FontSize', aFont.Size);
      aFont.Color:= ReadInteger('Fonts', Name + 'FontColor', aFont.Color);
      Fs:= ReadInteger('Fonts', Name + 'FontStyle', 0);
      If Fs <> 0 Then aFont.Style:= FStyle;
    end;
  finally
     ini.Free;
  end;
end;

                ☆ H-Triton (^^) since 1996 ☆
                      Avalon友の会第80008号
     玉でも石でもお預かりします FDELPHIサンプル蔵下足札番

Original document by H-Triton        氏 ID:(QZV11422)


ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。

Copyright 1996-2002 Delphi Users' Forum