4D View v16

PV ON EVENT

ホーム

 
4D View v16
PV ON EVENT

PV ON EVENT 


 

PV ON EVENT ( area ; event ; method ) 
引数   説明
area  倍長整数 in 4D View エリア
event  倍長整数 in 4D View イベント
method  文字 in メソッド名

説明   

PV ON EVENTコマンドは、method を4D Viewのeventに関連付けるために使用します。eventが発生するたびに、method が実行されます。

引数eventの指定には、PV Eventテーマの定数を使用します。

呼び出されたメソッドは6 つの倍長整数タイプの引数を受け取り、$0 にブール値を返します:

$1: 4D View エリアの参照
$2: イベント
$3: モディファイアキーのコード
$4: カラム番号
$5: 行番号
$6: キーのAscii コード(イベントがクリック、右クリック、またはダブルクリックである場合、$6 には0 が代入されます)

$3には以下の値のうちいずれかが設定されます (複数のキーが押された場合には、これらの値を加算されます):

0なし
512 Shiftキー
2048Altキー
4096Ctrlキー (Windows) / Commandキー (Mac OS).
  • クリック管理 (pv on clicked, pv on right clicked, pv on double clickedpv on contextual click イベント):
    - event (クリック, 右クリック, ダブルクリック, コンテキストクリック) がセル上で生成されると、$4には列番号が、$5には行番号が渡されます。クリックが行ヘッダーで生成されると、$4には0が渡されます。クリックが列ヘッダー上で生成されると、$5に0が設定されます。クリックが左上の角で生成されると、$4と$5に0が渡されます。
    - pv on contextual clickイベントは、ユーザーがマウスボタンを離したときに生成されます。対してpv on right clickedイベントはボタンが押されたときに生成されます。これら2つのイベントを使用して、ポップアップコンテキストメニューのインターフェースを置くことができます。pv on contextual clickイベントははWindowsの処理に、pv on right clickedはMac OSの処理に対応します。これら2つのイベントを同時に使用できます。
    - eventがクリック,  右クリック, ダブルクリック, コンテキストクリックの場合、$6は0に設定されます。
  • セレクションの変更 (pv on selection changedイベント ):
    - 新しいセレクションが複数のセルや列、行を含む場合、$4と$5は0に設定されます。
    - 新しいセレクションが1つのセルを含む場合、$4と$5にはそれぞれ列番号と行番号が返されます。
    - 新しいセレクションが列の場合、$4に列番号が渡され、$5は0に設定されます。
    - 新しいセレクションが行の場合、$4は0に設定され、$5には行番号が渡されます。
  • ファンクションキー: pv on keyboard イベントのコンテキストで、ファンクションキーが有効になっていると、$6引数に0が設定されます。この場合、4DのKeycodeシステム変数を使用して、有効にされたファンクションキーのコードを知ることができます。
  • 並び替え: pv on column sort イベントは列がソートされた直後に生成されます。ここでユーザーアクションをコントロールすることができます。この場合$6にはソート順を表す値が設定されます。値はPV Header sortテーマの以下の定数と比較できます:
    [#table_kst id="96691,96695"/]
  • サイズ変更: pv on column resizepv on row resizeイベントは、ユーザーが列や行のサイズを変更すると生成されます。 (PV SET COLUMNS WIDTHPV SET ROWS HEIGHTコマンドを使用して) プログラムで変更した場合は生成されません。

$0 がTrueの場合、event は考慮されません。
$0 がFalseの場合、event が考慮されます。

Note: データベースをコンパイルする予定であれば、いずれかの引数を使用しない場合でも、$0 をブール、$1~$6 を倍長整数として宣言しなくてはなりません。

area が0の場合、PV ON EVENTコマンドは新たに作成されたすべての4D Viewエリアに対して適用されます。この場合、データベースが開かれる際に実行されるOn Startupデータベースメソッドで、このコマンドを使用することをお勧めします。

イベントメソッドを削除するには、method引数に空の文字列を渡した上でPV ON EVENTコマンドを呼び出します。

ユーザーはヘッダーをクリックして並び替えを行います。PM_Eventメソッドを使用してどの列がソートされたか、およびソート順を取得します。

  //pv on column sort イベントで呼び出されるメソッドをインストール
 PV ON EVENT(area;pv on column sort;"PM_Event")


  //PM_Event メソッド
 C_BOOLEAN($0)
 C_LONGINT($1;$2;$3;$4;$5;$6)
 C_TEXT($SortOrder)
 If($2=pv on column sort)
    Case of
       :($6=pv ascending sort)
          $SortOrder:="昇順"
       :($6=pv descending sort)
          $SortOrder:="降順"
    End case
    ALERT("並び替えは列"+String($4)+"で"+$SortOrder+"順に行われました。")
 End if

列ヘッダをダブルクリックすると列がリサイズされます。しかしダブルクリックは2つのイベント、pv on clickedそのあとpv on double clickedを連続して生成します
結果として、並び替えがPV SET AREA PROPERTYの呼び出しで許可されているとき、ヘッダをダブルクリックするとまず列がソートされ、そしてリサイズが行われます。ダブルクリックの場合にリサイズのみを行わせたい場合は、pv on clickedイベントを捕捉して処理をさせないようにしなければなりません。これを行うには、pv on clicked イベント生成時に実行されるメソッドをインストールします:

  `pv on clickedイベントで呼び出されるメソッドをインストール
 PV ON EVENT(area;pv on clicked;"PM_Event")


  `PM_Event メソッド
 C_BOOLEAN($0)
 C_LONGINT($1;$2;$3;$4;$5;$6)
 If($2=pv on clicked)
    $0:=True `イベントは無視され、ソートは行われない
 End if



参照 

PV Get on event method

 
プロパティ 

プロダクト: 4D View
テーマ: PVエリア
番号: 15994

 
履歴 

変更: 4D View 2004.1

 
ARTICLE USAGE

4D View ( 4D View v16)