API version 1

- ‐

Dropped

ドラッグ&ドロップ操作でドロップされた時に発生するイベントです。

ドロップされた内容により複数回発生する場合があります。例えばエクスプローラから複数個のファイルをドロップされた場合そのファイルの個数回のイベントが発生します。

テキストデータとファイルを同時にドロップされた場合も各々イベントが発生します。

DroppedイベントのEventオブジェクトは以下の構造を持ちます。

名前

説明

integer

type

ドロップされたデータの形式。値は下記の定数のいずれかが設定されます。

定数

説明

DROP_FILE

1

dataはファイルにアクセス可能なFileオブジェクト

DROP_STRING

2

dataは文字列データの入ったStringオブジェクト

DROP_OBJECT

4

dataはオブジェクトへの参照

integer

mode

ドラッグ&ドロップモード。値は下記の定数のいずれかが設定されます。

定数

説明

DROP_COPYMODE

256

コピーモード

DROP_MOVEMODE

512

移動モード

reference

data

ドロップされたデータ(typeにより変化します)

integer

xPos

イベントが発生したx座標

integer

yPos

イベントが発生したy座標

boolean

shiftKey

Shiftキーが押されている場合はtrue、それ以外はfalse

boolean

ctrlKey

Ctrlキーが押されている場合はtrue、それ以外はfalse

boolean

altKey

Altキーが押されている場合はtrue、それ以外はfalse

boolean

lButton

マウスの左ボタンが押されている場合はtrue、それ以外はfalse

boolean

mButton

マウスの中ボタンが押されている場合はtrue、それ以外はfalse

boolean

rButton

マウスの右ボタンが押されている場合はtrue、それ以外はfalse

使用例

function onDropped(e) {
    switch (e.type) {
    case DROP_STRING:
        print(e.data, "\n");
        break;
    case DROP_FILE:
        print(e.data.pathName, "\n");
        break;
    }
}


使用例 CRSダウンロード

Form DisplayObj_p {
   x = 0;
   y = 0;
   width = 800;
   height = 600;

   /* このサンプルはテキストファイルをドラッグ&ドロップでお試しください */

   ListBox ListBox11 {
           x = 24;
           y = 32;
           width = 128;
           /* height = 100; */ # 無指定は100

           active = true ;  # falseで不活性
           acceptDrop = DROP_FILE;
           bgColor = "CYAN" ;
           inactiveBgColor = "BLACK" ;
           border = BORDER_DASH ;
           clipLeft = 25 ;
           clipTop = 5 ;
           opacity = 0.5 ;
           tabindex = 2;

           Function OnDropped(e) {
                           ^.EditBox12.value = e.Data.Read();
           }
   }

   EditBox EditBox12 {
           x = 176;
           y = 48;
           width = 200;
           /* height = 80; */ # 無指定は100

           Border = BORDER_SUNKEN;
           fgColor = "RED" ;
           inactiveFgColor = "WHITE" ;
           font = new Font("MS 明朝",16) ;

           /* 以下の項目は実際に試してみてください。
           scroll = SCROLL_NONE ;
           scrollBarSize = 30 ;
           tabindex = 1 ;
           */
           title = "内容表示" ;
   }

   Label label1 {
           x = 32;
           y = 8;
           width = 192;
           height = 16;
           title = "下の枠にテキストファイルをドロップ" ;
   }

   NumberEdit NumberEdit11[2] {
           x = 56;
           y = 160;
           width = 100;
           height = 25;
           layout = LAYOUT_VERTICAL ;
           margin = 10;     # box内のマージン
           layoutMargin = 10 ;
           layoutSpacing = 10;
           NumberEdit11[0].Value = 40 ;
           NumberEdit11[1].Value = 80;
   }

   Button Button1 {
           x = 184;
           y = 168;
           width = 69;
           height = 28;
           Title = "ScrollBar";

           Function OnTouch( e ) {
                   ^.EditBox12.scrollBarSize = ^.NumberEdit11[0].Value ;
           }
   }
   Button Button2 {
           x = 184;
           y = 200;
           width = 69;
           height = 28;
           Title = "height ";

           Function OnTouch( e ) {
                   ^.EditBox12.height = ^.NumberEdit11[1].Value ;
           }
   }
}