| 4D v13PV SET DRAG SIGNATURES | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|  | 
    4D View v13
 PV SET DRAG SIGNATURES 
         | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| PV SET DRAG SIGNATURES ( area ; signatures ) | ||||||||
| 引数 | 型 | 説明 | ||||||
| area | 倍長整数 |   | 4D View エリア | |||||
| signatures | 文字配列 |   | 署名の配列 | |||||
PV SET DRAG SIGNATURESコマンドは、配列signatures の内容をareaの“ドラッグ”署名として設定します。
署名は英数字の文字列で、その内容は自由に指定することができます。最長で32 桁までの署名を設定できます。
PV SET AREA PROPERTYコマンドにより定義されるエリアのプロパティを使用して、4D View のドラッグ&ドロップに関するオプションを指定することができます:
ドラッグ&ドロップが許可されると、ソースエリアのドラッグとターゲットエリアのドロップに対して共通する署名が少なくとも1 つはエリアに存在する場合に、2 つのエリア間(または同一のエリア)でのやり取りを行うことができます。
ドラッグ&ドロップイベントに関しては、PV ON EVENTコマンドを使用して、このイベントを検出することができます。
次の例題では、2 つの4D View エリア間のドラッグ&ドロップについて説明しています。まずはじめに署名およびこれらのエリアの動作(例えばフォームの変更時)を設定します。:
 ARRAY TEXT($DDSignatureArray;1)
 $DDSignatureArray{1}:="Signature_1"
 
 PV SET AREA PROPERTY(SourceArea;pv drag trigger;pv trigger on alt click) `alt-clickでドラッグ
 PV SET AREA PROPERTY(SourceArea;pv drag allowed;pv DD multiple cells)
 PV ON EVENT(SourceArea;pv on drag;"DragDropMethod")
 PV SET DRAG SIGNATURES(SourceArea;$DDSignatureArray)
 
 PV SET AREA PROPERTY(TargetArea;pv drop allowed;pv DD single cell+pv DD adjacent cells+pv DD multiple cells)
 PV SET AREA PROPERTY(TargetArea;pv drop mode;pv drop replace only)
 PV ON EVENT(TargetArea;pv on drop;"DragDropMethod")
 PV SET DROP SIGNATURES(TargetArea;$DDSignatureArray) `ドラッグと同じ署名alt キー+ クリックを使用してドラッグが実行されるか、またはターゲットエリア上でドロップが行われた場合に、プロジェクトメソッドDragDropMethodが呼び出されます:
 C_LONGINT($1) `4D View 参照エリア
 C_LONGINT($2) `イベント
 C_LONGINT($3) `キーボードモディファイアキーのコード
 C_LONGINT($4) `列番号
 C_LONGINT($5) `行番号
 C_LONGINT($6) `キーのASCII コード
 
 C_POINTER(SourceAreaPointer;TargetAreaPointer) `2 度のコールバックメソッドの間で保持しておく場所がない
 C_BLOB($blob) `一時的なドラッグ&ドロップノートパッド
 C_LONGINT($currentColumn;$currentRow) `カレントセルの座標
 C_LONGINT($destinationColumn;$destinationRow) `ドロップが行われるセルの座標
 
 Case of
    :($2=pv on drag)
       PV GET DRAG SOURCE($1;SourceAreaPointer) `移動元は?
 
    :($2=pv on drop)
       PV GET DROP TARGET($1;TargetAreaPointer) `移動先は?
 
       $blob:=PV Copy to blob(SourceAreaPointer->) `ノートパッドにコピー
       $destinationColumn:=PV Get drop info(TargetAreaPointer->;pv drop column)
  `コピー先....
       $destinationRow:=PV Get drop info(TargetAreaPointer->;pv drop row) `...coordinates
       PV GET CURRENT CELL(TargetAreaPointer->;$currentColumn;$currentRow)
  `指定されたエリアにペースト
       PV GOTO CELL(TargetAreaPointer->;$destinationColumn;$destinationRow)
       PV PASTE FROM BLOB(TargetAreaPointer->;$blob;1;1;1;1)
  `処理が終了したら、カレントセルを再設定する
       PV GOTO CELL(TargetAreaPointer->;$currentColumn;$currentRow)
 End case
	プロダクト: 4D
	テーマ: PVドラッグアンドドロップ
	番号: 
        15935
        
        
        
	
	初出: 4D View 6.8
PV GET DRAG SIGNATURES
PV SET DROP SIGNATURES