Tips

ブール型の列がクリックされたときにリストボックスの列をハイライトする方法

日付2009/04/02
ID09-031
バージョン11
プラットフォームWin, Mac

この記事は、最新ではないバージョンに関連した方法について解説しています。

最新のバージョンでは推奨されていないか、または他の方法で簡単に実現できる可能性があります。

4D v11 SQLのリストボックスでは、ブール型である列の動作が一般の列とは若干、異なっています。これはブール型の列がチェックボックスまたはポップアップメニューとして設定できることの影響であり、"On Clicked"ではなく"On Data Change"フォームイベントに反応することに関係があります。結果的に、ブール型の列は、一般の列のようにクリックの反応して自動的に行をハイライトすることはしません。

ブール型の列がクリックされたときにリストボックスの列をハイライトするようにする方法は、リストボックスのタイプによって異なります。

レコードを表示するタイプであれば、リストボックスのプロパティリストを表示してハイライトセット(例 : "MySet")を特定します。ブール型である列の"On Data Change"フォームイベントを有効にし、次のようなコードをオブジェクトメソッドに記述します。

$FormEvt_L:=Form event
$Self_P:=Self

Case of 
  : ($FormEvt_L=On Data Change )
    If ($Self_P->)
      ADD TO SET([MyTable];"MySet")
    Else 
      REMOVE FROM SET([MyTable];"MySet")
    End if 
End case 

配列を表示するタイプであれば、リストボックス自体のブール配列(例 : MyArraysListBox_aB)の値を更新するコードをオブジェクトメソッドに記述します。

Case of 
  : ($FormEvt_L=On Data Change )
    MyArraysListBox_aB{ MyBoolCol_aB } := MyBoolCol_aB{ MyBoolCol_aB }
End case