4D-JUG
Would you like to react to this message? Create an account in a few clicks or log in to continue.

リストボックス、カレントセレクション指定時のセルカラー変更について

2 posters

Go down

リストボックス、カレントセレクション指定時のセルカラー変更について Empty リストボックス、カレントセレクション指定時のセルカラー変更について

投稿 by osaru 2017-08-20, 5:22 pm

初めまして、v16.1を使用しております。

普段、リストボックスはいつも配列指定で使用しておりましたが、カレントセレクションを指定した際の挙動につきまして困惑しております。
Code:

LISTBOX GET CELL POSITION(*;"ListBox1";$clicked_col;$clicked_row;$clicked_var)
LISTBOX SET ROW COLOR($clicked_var->;$clicked_row;0x00FFCCCC;lk background color)
LISTBOX SET ROW COLOR($clicked_var->;$clicked_row;0x00FF0000;lk font color)
ソースフィールドを指定したセルでは「*または変数が必要です」というエラーになり、式を設定したセルでは変化なし・・・、
LISTBOX GET ARRAYSで取得した$arrColVarsではそれぞれフールドへの参照と式を入れたセルではNilが返ってくるのがその原因だとは思いますが、カレントセレクションを指定したリストボックスでのセルに色付けの方法は他にありませんでしょうか?

もし不可能であれば、カレントセレクションを配列にコピーしてリスト表示を更新する仕組みを作らないといけませんが、セレクションに対して処理を行う様になっている以前のバージョンで作成されたフォームでの処理における互換性を考えると工数が増えそうで気が重いところでございます。

逆に、セレクションをリストボックスに表示更新する仕組みを汎用的にすることができれば良さそうですね。そう言ったコンポーネントなどがあれば嬉しいですが・・・
よろしくお願い致します。

osaru

投稿数 : 67
登録日 : 2017/08/14

トップに戻る Go down

リストボックス、カレントセレクション指定時のセルカラー変更について Empty Re: リストボックス、カレントセレクション指定時のセルカラー変更について

投稿 by miyako 2017-08-21, 9:28 am

カレントセレクションを指定したリストボックスでのセルに色付けの方法は他にありませんでしょうか?

v14のドキュメント(63ページ)をご覧ください。
http://library.4d-japan.com/REFERENCE/v14/4d-upgrade-14.pdf

リストボックス全体ではなく,列のプロパティで制御します。
カレントセレクションの場合,配列ではなく,式(プロジェクトメソッドまたはChoose文など)で色を指定します。LISTBOX GET ARRAYSの「制御配列」は使用しません。

http://library.4d-japan.com/SAMPLE_DATABASES/4D/4D_v14/demo_dbs_hdi/
"HDI_SetStyleToCells.zip" の例題で取り上げられています。

カレントセレクションを配列にコピーしてリスト表示を更新する仕組みを作らないと・・・

ボックス内で更新したレコードの自動保存を回避したいのでない限り,その必要はないはずです。

セレクションをリストボックスに表示更新する仕組みを汎用的にすることができれば・・・

無料イベント "World Tour" で紹介された例題です。
https://github.com/4D-JP/event-world-tour-2017/blob/master/ユーザーモードコンポーネント.pdf
https://github.com/4D-JP/event-world-tour-2017

miyako

投稿数 : 480
登録日 : 2016/07/05

トップに戻る Go down

リストボックス、カレントセレクション指定時のセルカラー変更について Empty Re: リストボックス、カレントセレクション指定時のセルカラー変更について

投稿 by osaru 2017-08-21, 3:35 pm

miyakoさま、ご連絡ありがとうございます。
リストボックス全体ではなく,列のプロパティで制御します。
列のプロパティでの制御、やっと理解できました。この場合choose式で賄いきれない複雑な色付けをしたいと思ったら小さなプロジェクトメソッドが増えてしまうのは致し方ないですよね。

"HDI_SetStyleToCells.zip" の例題はプロパティに式として配列を入れて、そちらの配列を制御することでもOK、こちらならリストボックスのOn Display Detailイベントで逐次処理もできそうなので、オブジェクトメソッドの一箇所にコードを集約できて良いかもしれませんね。

ボックス内で更新したレコードの自動保存を回避したいのでない限り,
こちらは4Dというより作り方の問題なのですが、セレクションの変化タイミングが読めないところが多少あるので・・・

何れにしてもリストボックスの表現力が格段に上がったので使いこなせる様頑張って参りたいと思います。

osaru

投稿数 : 67
登録日 : 2017/08/14

トップに戻る Go down

リストボックス、カレントセレクション指定時のセルカラー変更について Empty Re: リストボックス、カレントセレクション指定時のセルカラー変更について

投稿 by Sponsored content


Sponsored content


トップに戻る Go down

トップに戻る


 
Permissions in this forum:
返信投稿: 不可