4D v16.3

Pasteboard data size

ホーム

 
4D v16.3
Pasteboard data size

Pasteboard data size 


 

Pasteboard data size ( dataType ) -> 戻り値 
引数   説明
dataType  文字 in データタイプ
戻り値  倍長整数 in ペーストボード中のデータサイズ (バイト) またはエラーコード

説明   

Pasteboard data size コマンドを使用して、dataType に渡したデータがペーストボード内に存在するかどうかを調べることができます。

Note: コピー/ペースト操作では、ペーストボードはクリップボードと同じです。

ペーストボードが空か指定したタイプのデータが含まれない場合、コマンドはエラー-102を返します。ペーストボードに指定したタイプのデータが含まれる場合、コマンドはバイト単位でデータのサイズを返します。

dataTypeにはチェックするデータのタイプを指定します。4D シグネチャ、UTI タイプ (Mac OS), フォーマット名/番号 (Windows), または4文字のタイプ (互換性)を指定できます。これらのタイプについてはペーストボードの管理を参照してください。

指定したタイプのデータがペーストボードに存在することを確認した後は、以下のいずれか1つのコマンドを使用し、そのデータをペーストボードから取り出すことができます:

  • ペーストボードにあるデータがテキストタイプの場合には、テキスト値を返すGet text from pasteboardか、BLOBにテキストを返すGET PASTEBOARD DATAを使用してそのデータを取得できます。
  • ペーストボードにあるデータがピクチャタイプの場合には、ピクチャをピクチャフィールドまたは変数に返すGET PICTURE FROM PASTEBOARDか、ピクチャをBLOBに返すGET PASTEBOARD DATAを使用してそのデータを取得できます。
  • ペーストボードがファイルパス名を含む場合、ファイルパス名を返すGet file from pasteboard コマンドを使用します。
  • 上記以外の任意のデータタイプに対しては、データをBLOBに返すGET PASTEBOARD DATAを使用します。

以下のコードは、ペーストボードにピクチャーが存在するかどうかをテストし、存在する場合にはそのピクチャーを4D変数にコピーします:

 If(Pasteboard data size(Picture data)=1) // ペーストボードにピクチャーがあるか?
  //ペーストボードにピクチャーが含まれる場合、コマンドは常にサイズではなく1を返します。
    GET PICTURE FROM PASTEBOARD($vPicVariable// もしあれば取り出す
 Else
    ALERT("There is no picture in the pasteboard.")
 End if

通常、アプリケーションはテキストタイプまたはピクチャタイプのデータをペーストボードにカットおよびコピーします。これは、ほとんどのアプリケーションでこの2つの標準データタイプが認識されているためです。ただし、アプリケーションは1つのデータを複数の異なるインスタンスのフォーマットでペーストボードに追加することができます。例えば、スプレッドシートの一部をカットまたはコピーするたびに、スプレッドシートアプリケーションはそのデータをSYLKフォーマットやTEXTフォーマットの他に、仮想的なSPSHフォーマットでも追加することができます。SPSHインスタンスにはアプリケーションのデータ構造を使用してフォーマットされたデータが含まれています。SYLK形式には同じデータが含まれていますが、SYLKフォーマットを用いると、他の多くのスプレッドシートプログラムからも認識されます。最後に、TEXTフォーマットには同じデータが含まれますが、SYLKやSPSHフォーマットに含まれる追加のな情報は入っていません。この点で、4Dとその仮想的なスプレッドシートアプリケーション間でのカット/コピー/ペーストルーチンを記述する際に、SPSHフォーマットの内容を知り、SYLKデータの解析準備ができた場合には、以下のようなコードを作成することができます:

 Case of
  ` まずペーストボードに仮想的なスプレッドシートのデータが含まれるかチェック
    :(Pasteboard data size("SPSH")>0)
  ` ...
  ` 次にペーストボードにSylkデータが含まれるかチェック
    :(Pasteboard data size("SYLK")>0)
  ` ...
  ` 次にペーストボードにTextデータが含まれるかチェック
    :(Pasteboard data size("TEXT")>0)
  ` ...
 End case

つまり、オリジナルの情報の大部分を含むデータのインスタンスをペーストボードから取り出そうとしています。

You want to drag some private data from different objects in your form. You can write:

  //source object
 If(Form event=On Begin Drag Over)
    APPEND DATA TO PASTEBOARD("some.private.data";$data)
 End if

  //target object
 If(Form event=On Drag Over)
    $0:=Choose(Pasteboard data size("some.private.data")>0;0;-1)
 End if

APPEND DATA TO PASTEBOARD コマンドの例題参照



参照 

GET PASTEBOARD DATA
GET PICTURE FROM PASTEBOARD
Get text from pasteboard
Pasteboard

 
プロパティ 

プロダクト: 4D
テーマ: ペーストボード
番号: 400

Errorシステム変数が更新されることがあります。

 
履歴 

変更: 4D v11 SQL

 
ARTICLE USAGE

ランゲージリファレンス ( 4D v16)
ランゲージリファレンス ( 4D v16.1)
ランゲージリファレンス ( 4D v16.2)
ランゲージリファレンス ( 4D v16.3)