掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
チェックボックスのボックスの色替え (ID:9390)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
ピーマコ : 「これで CheckBoxの色変えられますよ♪」 なかざわ : 「ほ〜… で、これをどっから呼び出すねん」 procedure ColorCheckBox(Sender: TObject); var DC : HDC; BR : HBRUSH; PN : HPEN; CL : COLORREF; begin with TCheckBox(Sender) do begin DC := GetDC(Handle); if Checked then CL := $00ffff else CL := $ffff00; // BOX内の背景色 BR := CreateSolidBrush(CL); PN := CreatePen(PS_SOLID, 1, $cc00ee); // チェックマークの色 SelectObject(DC, BR); SelectObject(DC, PN); FillRect(DC, Rect(2, 4, 11, 13), BR); if Checked then begin MoveToEx(DC, 3, 7, nil); LineTo(DC, 5, 9); LineTo(DC, 9, 5); LineTo(DC, 9, 7); LineTo(DC, 5, 11); LineTo(DC, 3, 9); LineTo(DC, 3, 8); LineTo(DC, 5, 10); LineTo(DC, 9, 6); end; DeleteObject(BR); DeleteObject(PN); ReleaseDC(Handle, DC); end; end; ピーマコ : 「CheckBoxの OnMouseUpイベントがいいと思いますけど。ほらうまくいくでしょ♪」 オジャマ : 「うわぁ〜、黄色の背景でピンクのチェックマークですか〜可愛いですけどハデですよね(^^ゞ」 ピーマコ : 「ハハハ…わたしのシュミですぅ」 procedure TForm1.CheckBox1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin ColorCheckBox(CheckBox1); end; オジャマ : 「あれ?フォーカスが別のコントロールに移ったら CheckBoxの色が元に戻っちゃいましたよ」 ピーマコ : 「ハハハ(^^;…それもわたしのシュミで…(^^;;…」 なかざわ : 「なにが"わたしのシュミ"や、サブクラス使わんかい」 ピーマコ : 「えっサブクラス? ナンのことでしょ?」 オジャマ : 「MESSAGEを横取りするんですよね」 なかざわ : 「そやな。CheckBoxをサブクラス化して、WM_PAINT、WM_LBUTTONUPのメッセージが来たら、デフォルト処理の後で ColorCheckBox(CheckBox1); 呼べばエエんよ」 procedure TForm1.FormCreate(Sender: TObject); begin OrgnProc1 := CheckBox1.WindowProc; CheckBox1.WindowProc := ChkBoxScWndProc1; end; procedure TForm1.ChkBoxScWndProc1(var Msg: TMessage); begin OrgnProc1(Msg); case Msg.Msg of WM_PAINT, WM_LBUTTONDOWN, WM_LBUTTONUP : ColorCheckBox(CheckBox1); end; end; ピーマコ : 「MESSAGEの横取りですか〜、ナルホド…そうしてみたら色が元に戻ったりしないですねぇ」 なかざわ : 「…オカシイな〜?」 オジャマ : 「ン?ナカザワさん、何かさがしものですか〜?」 なかざわ : 「ここに置いといたケーキどこいったんやろ、オジャマ知らんか〜?」 ピーマコ : 「あっそれワタシが横取りしちゃいましたぁ。ゴチソウさまですぅ♪」 なかざわ : 「ナンやて!おまえが犯人か」 ピーマコ : 「犯人だなんて、そんなぁ…、それ食べてナカザワさん太ったらいけないからぁ…、ワタシが犠牲になってあげたんですよぉ〜だから感謝してくださいね♪」 なかざわ : 「……(+_+)」
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.