掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
コンポーネントでParentFontを対応するには? (ID:22775)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
親フォームのフォント変更時に CM_PARENTFONTCHANGED メッセージの WParam が 0 で送られてくるのが原因なので、独自に処理をする必要があるようです。 以下はサブクラス化を用いた場合のコードです。 type TMyComponent = class(TComponent) private FMyForm: TForm; FDefMyFormProc: TWndMethod; procedure MyFormProc(var Message: TMessage); public constructor Create(AOwner: TComponent); override; destructor Destroy; override; end; implementation { TMyComponent } constructor TMyComponent.Create(AOwner: TComponent); begin inherited Create(AOwner); FMyForm:= TForm.CreateNew(Application.MainForm); FMyForm.Parent:= Application.MainForm; FDefMyFormProc := FMyForm.WindowProc; FMyForm.WindowProc:= MyFormProc; end; destructor TMyComponent.Destroy; begin FMyForm.WindowProc:= FDefMyFormProc; FMyForm.Release; inherited Destroy; end; procedure TMyComponent.MyFormProc(var Message: TMessage); begin with Message do if (Msg = CM_PARENTFONTCHANGED) and (WParam = 0) then FMyForm.Font.Assign(Application.MainForm.Font) else FDefMyFormProc(Message); end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.