お知らせ

電子会議

ライブラリ

パレット

Delphi FAQ検索

Delphi FAQ一覧

サンプル蔵





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

"システムフォントの取得"




{ コントロールパネル->画面->デザイン のアイコンに指定したフォントなどを
取得します。}



const
  BufSize = $32;
var
  Reg: TRegistry;
  Buf: array[0..BufSize - 1] of Byte;
  FnName: array[0..BufSize - $1 - $12] of Char;
  i: Integer;
begin
  FnName := '';

  Reg := TRegistry.Create;
  try
    if Reg.OpenKey('Control Panel\desktop\windowmetrics', False) then
    begin
      Reg.ReadBinaryData('IconFont', Buf, BufSize);
      for i := $12 to $31 do begin
        if Buf[i] = $0 then
          Break;
        FnName[i - $12] := Char(Buf[i]);
      end;
    end;
    with FFont do begin
      Name := FnName;
      Size := Buf[0];
    end;

{
Reg.ReadBinaryDataの第一引数の対応は以下の通りです。

'CaptionFont'   アクティブタイトルバー & 非アクティブタイトルバー
'IconFont'      アイコン(エクスプローラなどで表示されるフォント)
'MenuFont'      メニュー & 選択項目
'MessageFont'   メッセージボックス
'SmCaptionFont' パレットタイトル
'StatusFont'    ヒント

 なにしろ素人なもので、間違いなどあればご指摘お願いします。

 趣味プログラミングでは、$31を0x31とか書いて怒られたりさえしてます(^^;)
}

//                                     BAC (VZY02322)

Original document by BAC             氏 ID:(VZY02322)


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

Copyright 1996-2002 Delphi Users' Forum