ドゥアイネットのプログラマー、湯川が開発日記を綴ります。

CALENDAR
S M T W T F S
1234567
891011121314
15161718192021
22232425262728
293031    
<< December 2019 >>
ARCHIVES
CATEGORIES
<< Vector | main | DataGridのヘッダーの色 >>
Clipboard
 curlではクリップボードを使用することができます。

以下の例では、ダブルクリックされたTextFlowBoxのテキストを
クリップボードにセットしています。

画像

let v_text: MyTextFlowBox=
 {MyTextFlowBox
  opaque-to-events? = true,
  "ken_cd"
  tooltip={Tooltip "ダブルクリックで文字をコピーできます",style = TooltipStyle.immediate},
  {on e:PointerPress at s:#EventTarget do
    {self.on-copy-text e,s}
  }
}

{method private {on-copy-text e:PointerPress,s:#EventTarget}: void
 
  ||ダブルクリックの場合のみ
  {if e.click-count != 2 then
    {return}
  }
 
  ||Clipboardクラスの「set-string」を使って文字列をセット
  let v_clip:Clipboard = {Clipboard.get-system-clipboard}

  {v_clip.set-string
    (s asa MyTextFlowBox).text
  }
}


「Clipboard」クラスを使わないでもクリップボードにセットすることができます。

以下の例では、テーブルで選択されている部分を
クリップボードにセットしています。

画像

||クリップボードにセットする
{v_table.selection-context.do-command
  "copy",
  throw-exception-on-failure? = false
}

selection-contextプロパティで選択されているデータがとれます。
SelectionContextの「do-command」メソッドで引数に「copy」を渡してやります。

コピーしたあとにエディタに貼り付けると

画像

うまく使えば操作性をあげることができると思います。
| Curl | 17:13 | comments(0) | - |
コメント
コメントする