ここは旧式の4DドキュメントWebサイトです。最新のアップデートされたドキュメントを読むには新サイトをご利用下さい→ developer.4d.com

ホーム

 
4D v18
On VP Ready フォームイベント

On VP Ready フォームイベント  


 

概要  

4D View Pro エリアのプロパティリスト内では、以下のフォームイベントが利用可能です:

一部のイベントは標準のフォームイベント(全てのアクティブオブジェクトで利用可能)であり、一部は4D View Pro 特有のフォームイベントとなっています。これらの4D View Pro 特有のフォームイベントを使用することで、それらが4D View Pro エリア内で生成されたときにFORM Event コマンドが返すオブジェクト内の追加の情報を利用することができます。以下の表は、どれが標準のイベントでどれが4D View Pro 特有のフォームイベントかを表しています:

 

標準の4D イベント(Form event code参照)4D View Pro 特有イベント
On Load  On VP Ready
On Getting Focus On Clicked
On Losing Focus  On Double Clicked
On Unload  On Header Click
 On After Edit
 On Selection Change
 On Column Resize
 On Row Resize

4D View Pro エリアを初期化するためのコード (値の読み込みなど) は当該エリアの On VP Ready フォームイベント内に書く必要があります。このフォームイベントはエリアの読み込みが完了したときに生成されるため、有効なコンテキスト内でコードを実行するには、同イベントの利用が確実です。On VP Ready フォームイベントが生成される前に 4D View Proコマンドを呼び出してしまうと、エラーが返されます。

注: 4D View Pro エリアは非同期的に4Dフォーム上に読み込まれます。したがって、標準の On load フォームイベントは4D View Proエリアの読み込み完了を保証せず、4D View Proの初期化コードに利用することはできません。On VP Ready は常に On load の後に生成されます。

4D View Pro ドキュメント上のどこかをクリックすると、On Clicked イベントが生成されます。FORM Event コマンドによって返されるオブジェクトには、以下のプロパティが格納されています:

 

プロパティ詳細
code倍長整数On Clicked
descriptionテキスト"On Clicked"
objectNameテキスト4D View Pro エリア名
sheetNameテキストイベントのシート名
rangeオブジェクトセルのレンジ

 

例:

 If(FORM Event.code=On Clicked)
    VP SET CELL STYLE(FORM Event.range;New object("backColor";"green"))
 End if

ユーザーが4D View Pro ドキュメント上のどこかをダブルクリックすると、On Double Clicked イベントが生成されます。FORM Event コマンドによって返されるオブジェクトには、以下のプロパティが格納されています:

 

プロパティ詳細
code倍長整数On Double Clicked
descriptionテキスト"On Double Clicked"
objectNameテキスト4D View Proエリア名
sheetNameテキストイベントのシート名
rangeオブジェクトセルのレンジ

 

例:

 If(FORM Event.code=On Double Clicked)
    $value:=VP Get value(FORM Event.range)
 End if

ユーザーが4D View Pro ドキュメント内のカラムまたは行ヘッダーをクリックすると、On Header Click イベントが生成されます。FORM Event コマンドによって返されるオブジェクトには以下のプロパティが格納されています:

 

プロパティ詳細
code倍長整数On Header Click
descriptionテキスト"On Header Click"
objectNameテキスト4D View Pro エリア名
sheetNameテキストイベントのシート名
rangeオブジェクトセルのレンジ
sheetArea倍長整数イベントが発生したシートの場所:
  • 0: カラム番号/文字ヘッダー間の交差するエリア(シートの左上端)
  • 1: カラムヘッダー(カラム番号/文字を表示しているエリア)
  • 2: 行ヘッダー(行番号を表示しているエリア)
  •  

    例:

     If(FORM Event.code=On Header Click)
        Case of
           :(FORM Event.sheetArea=1)
              $values:=VP Get values(FORM Event.range)
           :(FORM Event.sheetArea=2)
              VP SET CELL STYLE(FORM Event.range;New object("backColor";"gray"))
           :(FORM Event.sheetArea=0)
              VP SET CELL STYLE(FORM Event.range;New object("borderBottom";New object("color";"#800080";"style";vk line style thick)))
        End case
     End if

    4D View Pro ドキュメントで何か変更があると、On After Edit イベントが生成されます。FORM Event コマンドから返されるオブジェクトには以下のプロパティが格納されています:

     

    プロパティ詳細
    code倍長整数On After Edit
    descriptionテキスト"On After Edit"
    objectNameテキスト4D View Proエリア名
    sheetNameテキストイベントのシート名
    actionテキスト"editChange"、"valueChanged"、"DragDropBlock"、"DragFillBlock"、"formulaChanged"、"clipboardPasted"

    : On VP Range Changed イベントも参照してください。

     

    action プロパティの値によって、オブジェクトには追加のプロパティが格納されていることがあります。

    テキストの編集をした場合、以下の追加のプロパティが生成されます:

     

    プロパティ詳細
    rangeオブジェクトセルのレンジ
    editingTextバリアントカレントのエディターからの値

    値を変更すると、以下の追加のプロパティが生成されます: 

     

    プロパティ詳細
    rangeobjectセルのレンジ
    oldValueバリアント変更前のセルの値
    newValueバリアント変更後のセルの値

    ドラッグとドロップのアクションをすると、以下の追加のプロパティが生成されます:

     

    プロパティ詳細
    fromRangeオブジェクトソースセルレンジ(ドラッグされる範囲)のレンジ
    toRangeオブジェクト移行先セルレンジ(ドロップされる場所)のレンジ
    copyブールソースレンジがコピーされたかどうかを表します
    insertブールソースレンジが挿入されたかどうかを表します

    セルのコンテンツをドラッグして近隣のセルに自動入力をしようとすると、以下の追加のプロパティが生成されます:

     

    プロパティ詳細
    fillRangeオブジェクト自動入力のために使用されるレンジ
    autoFillType倍長整数自動入力のために使用される値。
  • 0: セルにはデータ全体(値、書式、フォーミュラ)が入力された
  • 1: セルには自動シーケンシャルデータ入力された
  • 2: セルには書式のみが入力された
  • 3: セルには値のみが入力され、フォーミュラは入力されていない
  • 4: セルから値が除去された
  • 5: セルは自動的に入力された
  •  
    fillDirection倍長整数ドラッグが行われた方向
  • 0: 左のセルに入力された
  • 1: 右のセルに入力された
  • 2: 上のセルに入力された
  • 3: 下のセルに入力された
  • フォーミュラを入力すると、以下の追加のプロパティが生成されます:

     

    プロパティ詳細
    rangeオブジェクトセルのレンジ
    formulaテキスト入力されたフォーミュラ

    クリップボードからコンテンツをペーストすると、以下の追加のプロパティが生成されます:

     

    プロパティ詳細
    rangeオブジェクトコンテンツを受け取るセルのレンジ
    pasteOption倍長整数クリップボードから何をペーストされたかを表します:
  • 0: 全て(値、書式、フォーミュラ)がペーストされた
  • 1: 値のみがペーストされた
  • 2: 書式のみがペーストされた
  • 3: フォーミュラのみがペーストされた
  • 4: 値と書式がペーストされた(フォーミュラはペーストされなかった)
  • 5: フォーミュラと書式のみがペーストされた(値はペーストされなかった)
  • pasteDataオブジェクトクリップボードからペーストされるデータ
     

     プロパティ    詳細
    text  テキスト クリップボードからのテキスト
    html  テキスト クリップボードからのHTML

    例題  

    以下はOn After Edit イベントを管理する例です:

     If(FORM Event.code=On After Edit)
        If(FORM Event.action="valueChanged")
           ALERT("WARNING: You are currently changing the value from "+String(FORM Event.oldValue)+" to "+String(FORM Event.newValue)+"!")
        End if
     End if

    上記のコードの結果生成されたイベントオブジェクト(FORM Event参照)は、以下のような形式をしています:


    {
    "code":45;
    "description":"On After Edit";
    "objectName":"ViewProArea"
    "sheetname":"Sheet1";
    "action":"valueChanged";
    "range": {area:ViewProArea,ranges:[{column:1,row:2,sheet:1}]};
    "oldValue":"The quick brown fox";
    "newValue":"jumped over the lazy dog";
    }

    4D View Pro ドキュメント内で行またはカラムのカレントセレクションを変更すると、On Selection Change イベントが生成されます。FORM Event コマンドによって返されるオブジェクトには以下のプロパティが格納されています:

     

    プロパティ詳細
    code倍長整数On Selection Change
    descriptionテキスト"On Selection Change"
    objectNameテキスト4D View Proエリア名
    sheetNameテキストイベントのシート名
    oldSelectionsオブジェクト変更前のセルレンジ
    newSelectionsオブジェクト変更後のセルレンジ

     

    例:

     If(FORM Event.code=On Selection Change)
        VP SET CELL STYLE(FORM Event.oldSelections;New object("backColor";Null))
        VP SET CELL STYLE(FORM Event.newSelections;New object("backColor";"red"))
     End if

    4D View Pro ドキュメント内でユーザーがカラムの幅を変更した場合、On Column Resize イベントが生成されます。FORM Event コマンドによって返されるオブジェクトには以下のプロパティが格納されています:

     

    プロパティ詳細
    code倍長整数On Column Resize
    descriptionテキスト"On Column Resize"
    objectNameテキスト4D View Proエリア名
    sheetNameテキストイベントのシート名
    rangeオブジェクト幅が変更されたカラムのセルレンジ
    headerブール行ヘッダーカラム(最初のカラム)がリサイズされた場合にはTrue、それ以外の場合にはFalse

     

    例:

     If(FORM Event.code=On Column Resize)
        VP SET CELL STYLE(FORM Event.range;New object("hAlign";vk horizontal align right))
     End if

    4D View Pro ドキュメント内でユーザーが行の高さを変更した場合、On Row Resize イベントが生成されます。FORM Event コマンドによって返されるオブジェクトには以下のプロパティが格納されています:

     

    プロパティ詳細
    code倍長整数On Row Resize
    descriptionテキスト"On Row Resize"
    objectNameテキスト4D View Proエリア名
    sheetNameテキストイベントのシート名
    rangeオブジェクト高さが変更された行のセルレンジ
    headerブールカラムのヘッダー行(最初の行)がリサイズされた場合にはTrue、それ以外の場合にはFalse

     

    例:

     If(FORM Event.code=On Row Resize)
        VP SET CELL STYLE(FORM Event.range;New object("vAlign";vk vertical align top))
     End if

     
    プロパティ 

    プロダクト: 4D
    テーマ: On VP Ready フォームイベント

     
    ページの目次 
     
    履歴 

     
    ARTICLE USAGE

    4D View Pro リファレンス ( 4D v18)