XojoでのドロップレットUI

 XojoでドロップレットのUIを作る必要があって調べたので備忘録として記しておきます。そのうちまた必要になりそうだし。なおMacで作ってます。Winでどうなのかはテストしてないのでわからないけど流れは多分ほぼ同じ。

アプリアイコンへのドラッグアンドドロップ

 アプリアイコンへのドラッグアンドドロップのやり方は以下。

1 ファイルタイプグループを作成

ファイルタイプグループを作成 新規にファイルタイプグループを作成し、適宜ドロップしたいファイルタイプを登録する。豊富にファイルタイプのバリエーションが用意されているのでその中から選ぶ感じ。なければ作る。

2 ビルド設定でドロップできるようにするファイルタイプを選択

 ビルド設定でドロップできるようにするファイルタイプを選択する。1で適切にファイルタイプを設定していれば選択できるようになっているはず。

3 Appのイベントハンドラ種別でOpenDocumentを選んでコードを記述

 AppのイベントハンドラでOpenDocumentを選んで実行したいコードを書く。例えば以下のような感じ。例では拡張子が.TXT以外のものをハネるようにチェックを入れている。もうちょいスマートな方法がありそうなのだが。

 チェック用メソッドは

 単純に正規表現で拡張子をチェックしてマッチするかどうかでTrue/Falseを返して判定してる感じ。

特定のウィンドウ内領域へのドラッグアンドドロップ

 特定のウィンドウ内領域へのドラッグアンドドロップのやり方は以下。

1 ファイルタイプグループを作成

ファイルタイプグループを作成 新規にファイルタイプグループを作成し、適宜ドロップしたいファイルタイプを登録する。豊富にファイルタイプのバリエーションが用意されているのでその中から選ぶ感じ。なければ作る。

2 ドラッグ&ドロップの対象にしたいエリアを作る

D&D対象エリアの作成 ドラッグ&ドロップの対象にしたいエリアを適宜作る。例ではWindow1の中にdropAreaという領域を設定している。

3 イベントハンドラ「Open」を設定

 ドラッグ&ドロップの対象エリアにイベントハンドラ「Open」を作り、コードを記述する。コードは以下。

 DropTypes.Textの部分は適宜変える。ドロップされるファイルの種別区分をしないならDropTypes.Allとか。

4 イベントハンドラ「DropObject」を設定

 ドラッグ&ドロップの対象エリアにイベントハンドラ「DropObject」を作り、コードを記述する。コードは以下。

 記述例では拡張子が.TXTかどうかをチェックした上で.TXTだった場合にパスをエリア内に記述している。チェックメソッドのコードは上と同じなので割愛。

 複数ファイルをドロップして連続実行させるには「do〜Loop Until Not obj.NextItem」で全体を囲む。

(2017.7.19)

※「RegExはデフォルトで大文字小文字を区別しない」との情報をいただいたのでコードをプチ修正しました。

(2017.7.19追記)

※複数ファイルドロップの場合について追記

(2022.3.4追記)

タグ: , ,

コメントをどうぞ

プロフィール
Jun Tajima

こちらにて、電子書籍&Web制作を担当しています。
このブログは、EPUB3をはじめとした電子書籍制作担当オペレータからの、「電子書籍の制作時にたとえばこんな問題が出てきていますよ」的な「現地レポート」です。少しでも早い段階で快適な電子書籍閲覧・制作環境が整うことを願って、現場からの声を発信していこうと目論んでおります。

当ブログ内の記事・資料は、私の所属しております組織の許諾を得て掲載していますが、内容は私個人の見解に基づくものであり、所属する組織の見解を代表するものではありません。また、本ブログの情報・ツールを利用したことにより、直接的あるいは間接的に損害や債務が発生した場合でも、私および私の所属する組織は一切の責任を負いかねます。