読者です 読者をやめる 読者になる 読者になる

Web・IT うんたらら

業務系とWeb系の狭間でIT業界を彷徨いながら備忘録と足跡を残していきます

Delphi XE5でコンパイル時に実機 / シミュレータにファイルを転送する

Delphi XE

ソース上から読み込む画像や音声ファイルをどうやって配置したらいいの?という問題。
非常に基本的なことですが、ネット上には全然出ていないというかグーグラビティが非常に悪いので、メモ。

以下の手順で可能です。


1. ツールバー上「プロジェクト」→「配置」をクリックして配置マネージャを開く。

2. 配置マネージャ左上、「ファイルを追加」ボタンをクリックし、転送するファイルを選択。
(複数人での開発等も考慮し、相対パスで指定しましょう)

3. グリッドに選択したファイルが追加されるので、プラットフォームの値に目当てのデバイスがあるか確認。

4. リモートパスにそれぞれ以下の値を追加
iOSの場合: StartUp\Documents
Androidの場合: assets\internal

他の画面同様、プラットフォームごとに設定できるので、配置マネージャ上部のコンボボックスで、利用するプラットフォームそれぞれに入力します。ちなみにこのコンボボックス、ウインドウの横幅が足りないと表示されないという罠があるので注意。


配置方法は以上。


上記パスをソースから呼び出す場合は、usesにIOUtilsを追加した上で、以下のクラスメソッドを使うとパスを取得できます。これの結果にファイル名をプラスしてあげればいいです。

TPath.GetDocumentsPath

また、

GetHomePath + PathDelim + 'Documents'

や、ParamStr(0)からパスを取得している記事もあり、iOS版ではそれでもいいのですが、Android版との互換性も考慮すると避けた方がよいでしょう。


ちなみに、上記パスは永続的に使うファイルを保存する場所であるため、一時ファイルを使う場合の保存先は以下のパスで取得しましょう。

TPath.GetTempPath