掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
XE3でCheckBoxの色を指定 (ID:43653)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
>今回の質問とは別にTCheckBoxを貼り付けて背景色、文字色の指定を試しましたがしましたがやはりこれも指定色を反映できませんでした Formに貼り付けたTCheckBoxの背景色、文字色を変えたいなら、 type TCheckBox = class({Vcl.}StdCtrls.TCheckBox) private FOriginalCaption: string; _MySetCap: Boolean; procedure WMPaint(var msg: TWMPaint); message WM_PAINT; procedure CMTextChanged(var Message: TMessage); message CM_TEXTCHANGED; end; type TForm1 = class(TForm) CheckBox1: TCheckBox; ........................... Form1: TForm1; implementation {$R *.dfm} procedure TCheckbox.CMTextChanged(var Message: TMessage); begin inherited; if _MySetCap then Exit; FOriginalCaption := Caption; end; procedure TCheckbox.WMPaint(var msg: TWMPaint); var BtnWidth: Integer; canv: TControlCanvas; begin BtnWidth := GetSystemMetrics(SM_CXMENUCHECK); _MySetCap := True; if not (csDesigning in ComponentState) then Caption := ''; _MySetCap := False; inherited; canv := TControlCanvas.Create; try canv.Control := Self; canv.Font := Font; if not Self.ParentColor then // デフォルトでは、Self.ParentColor は True? begin // SetBkMode(canv.Handle, Ord(OPAQUE)); canv.Brush.Color := clBlue; //Self.Color; // とりあえず背景は青色 canv.FloodFill(BtnWidth + 1, 0, canv.Pixels[BtnWidth + 1, 0], fsSurface); end; SetBkMode(canv.Handle, Ord(TRANSPARENT)); canv.Font.Color := clYellow; //Self.Font.Color; // とりあえずCaption文字は黄色 canv.TextOut(BtnWidth + 1, 2, FOriginalCaption); finally canv.Free; end; end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.