掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
TListViewのvsReport形式でチェックボックスをチェックなし、あり、不可(グレー)にしたい (ID:38121)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
>monaaさん、サンプルコードまで書いていただいて、ありがとうございます! 挙動不審なことを理解していただいてうれしいです。一人で悩んでいたものですから。 ObjectPascalプログラムを構成する要素がまるで理解できていないので、一行一行が参考になります。 ただ…これはStateIndexの内容によりCheckedの状態変化に制限を加え、さらに項目の色も変える、 というサンプルですよね?? すみません、確かにプログラム中のどこでCheckedの状態変化を制限するのかという課題もあるのですが、 3状態のチェックボックスをどうやってうまく表示させるか→どうやってチェックボックスがクリック されたことを検出するのか、というのが当面の課題になってきております…。 あの、その、、、後出し環境で大変申し訳無いのですが、Delphi 6 Personalを使用しておりまして、 OnItemCheckedというイベントが見当たらないのです…。 調べた限りでは、Delphi 2009からの新機能ではないかと(ググっても情報が少ないです)。 ☆Delphi 2009 および C++Builder 2009 の新機能 - RAD Studio(共通) http://pdf.openvista.jp/view/medium/p76-77/http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate1/JA/pdf/devcommon.pdf ※2ページ目にOnItemCheckedについて載ってます せっかく教えていただいたのに活用できなくてすみません。 でもOnItemCheckedイベント、気になります。チェックボックスのクリックで呼び出され、その中では Checkedの変更をしてOkですよ、というものでしょうか? あと、Checkedの状態変化をStateIndexが0,1なら制限無し、2なら常時OFF、3なら常時ONとするならば、 item.Checked := not Item.Checked; ←下の行で決まってしまうような?? item.Checked := (item.StateIndex mod 2 = 1); ←(item.StateIndex = 3); ではダメですか? もしくは、 item.Checked := not Item.Checked; if item.StateIndex >= 2 then item.Checked := (item.StateIndex mod 2 = 1); なら、つじつまが合うような気がするのですが…。 monaaさんの意図している動作と、私の求めている動作が違っていたらすみません。 さらにちょっと疑問なんですが、OnCustomDrawでなくOnAdvancedCustomDrawにはどういった利点がある のでしょうか。 OnCustomDrawのヘルプによると、「…デフォルトの描画処理を他のステージ(背景が消去されたとき, またはリストビューの描画が完了したときなど)でも実行するには,OnAdvancedCustomDraw イベントを かわりに使います。」となっていますが、ちんぷんかんぷんです…。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.