|
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
|