お知らせ

電子会議

ライブラリ

パレット

Delphi FAQ検索

Delphi FAQ一覧

サンプル蔵





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

"フォントを半角:全角=1:2で表示"



  非プロポーショナルフォントでありながら、フォントサイズによっては
  半角:全角<>1:2な「MS ゴシック」「MS 明朝」を1:2に
  します。
  
  

type
  TYourCompo = class(TOya)
  private
    procedure CMFontChanged(var Message: TMessage); message CM_FONTCHANGED;
  end;
  
procedure TYourCompo.CMFontChanged(var Message: TMessage);
var
  TM: TTextMetric;
begin
  Font.Style := [];
  Canvas.Font.Assign(Font);
  if HandleAllocated then
  begin
    GetTextMetrics(Canvas.Handle, TM);
    if TM.tmMaxCharWidth <> TM.tmAveCharWidth * 2 then
    begin
      Font.Height := TM.tmAveCharWidth * -2;
      Canvas.Font.Assign(Font);
    end;
  end;
end;

  何故こうすると実現するのかは、わかっていませんが(^^ゞ
  
                                                   本田勝彦

  (* サンプル蔵ログファイルからヘルプファイルが作成できます。*)
         (* FDELPHI/LIB/06/114 を参照してください *)

Original document by 本田勝彦        氏 ID:(VYR01647)


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

Copyright 1996-2002 Delphi Users' Forum