D.P.F Delphi iOS Native ComponentsはiOSのビジュアルコンポーネントなどの機能をDelphiから使用できるコンポーネント集です。
Firemonkeyに用意されていないiOSの機能を使用したいときに便利です。
また、Objective-CのコードをDelphiで記述するときのサンプルとしても役に立ちます。
Delphi 10 Seattleにインストールする方法を説明します。
install.txtに書かれている内容そのままです。(^^ゞ
ダウンロード
D.P.F Delphi iOS Native Componentsのサイトからファイルをダウンロードして、適当なフォルダーに展開します。
ライブラリパスの設定
メニューから「ツール」→「オプション」を選択します。
オプション画面が表示されます。
「環境オプション」→「Delphiオプション」→「ライブラリ」を選択します。
「選択したプラットフォーム」から「32ビットWindows」を選択します。
ライブラリパスに「D.P.F Delphi iOS Native Components」を展開したフォルダーのパスを追加します。
同様にして、「iOS デバイス 64ビット」「iOS デバイス 32ビット」「iOS シミュレータ」のライブラリパスに「D.P.F Delphi iOS Native Components」を展開したフォルダーのパスを追加します。
リモートパスの設定
オプション画面の「環境オプション」→「SDKマネージャ」を選択します。
SDKバージョンから「iOSデバイス – 64ビット」を選択します。
「リモートバス」のリストビューを下にスクロールしてフレームワークのセクションに移動します。
適当なフレームワークの項目を選択して、「新しいパス項目を追加」ボタンを押し、次のフレームワークを追加します。
- $(SDKROOT)/System/Library/Frameworks/EventKit
- $(SDKROOT)/System/Library/Frameworks/MessageUI
- $(SDKROOT)/System/Library/Frameworks/AudioToolbox
- $(SDKROOT)/System/Library/Frameworks/Social
- $(SDKROOT)/System/Library/Frameworks/QuickLook
- $(SDKROOT)/System/Library/Frameworks/SystemConfiguration
- $(SDKROOT)/System/Library/Frameworks/GameKit
- $(SDKROOT)/System/Library/Frameworks/CoreBluetooth
- $(SDKROOT)/System/Library/Frameworks/Accounts
- $(SDKROOT)/System/Library/Frameworks/AdSupport
- $(SDKROOT)/System/Library/Frameworks/ExternalAccessory
- $(SDKROOT)/System/Library/Frameworks/AddressBookUI (XE8以降は不要)
- $(SDKROOT)/System/Library/Frameworks/AddressBook (XE8以降は不要)
- $(SDKROOT)/System/Library/Frameworks/MobileCoreServices (XE8以降は不要)
- $(SDKROOT)/System/Library/Frameworks/MapKit (XE8以降は不要)
- $(SDKROOT)/System/Library/Frameworks/LocalAuthentication.framework/LocalAuthentication (iOS 8.0以降)
「ライブラリパス」に次のパスを追加します。
- /usr/lib/libxml2.dylib
コンポーネントのインストール
「D.P.F Delphi iOS Native Components」を展開したフォルダーにある「DPFiOSPackagesDX10.dpk」(Delphi XE8の場合はDPFiOSPackagesXE8.dpk)を開きます。
プロジェクトを右クリックして、「インストール」を選択します。
コンポーネントが登録されます。
以上で、使用できる状態になりました。
インストールが完了すると、新規作成ダイアログに「D.P.F Delphi iOS Native Compoents」が追加されます。
また、ツールパレットに多くのコンポーネントが追加されます。
使用上の注意
フォームのPaintRectsメソッドをオーバーライドする
Firemonkeyのビジュアルコンポーネントを使用せず、D.P.F Delphi iOS NativeComponentsだけを使う場合、フォームのPaintRectsメソッドをオーバーライドすると、処理速度が向上します。
フォームの上に置いたTDPFUIViewを、AlignプロパティをClientにしてフォーム全体を覆い、その上にDFPのコンポーネントを配置するようにします。
type
TForm1 = class( TForm )
DPFUIView1: TDPFUIView;
private
{ private 宣言 }
protected
procedure PaintRects(const UpdateRects: array of TRectF); override;
public
{ public 宣言 }
end;
オーバーライドしたPaintRectsメソッドでは、inheritedを呼び出しません。
procedure TForm1.PaintRects(const UpdateRects: array of TRectF);
begin
// inherited;
end;
Firemonkeyのビジュアルコンポーネントの描画処理が呼び出されなくなります。
使用していなければ不要な処理なので、PaintRectsの呼び出しを抑制することで、パフォーマンスが向上します。