サンプルアプリケーション01:PowerPointリモコン

_images/101.gif

作成するアプリケーションについて

PowerPointのスライドを操作するWindowsアプリケーションと、そのアプリケーションを操作するFireMonkeyモバイルアプリケーションを作成します。

_images/102.gif

PowerPointのスライドを操作するWindowsアプリケーションの作成

_images/126.gif

プロジェクトの作成

新規にVCLフォームアプリケーションを作成します。

_images/103.gif

フォームの作成

フォームにボタン(TButton)を5つと、アクションリスト(TActionList)を配置します。

_images/104.gif

アクションの作成

アクションを5つ作成します。

_images/128.gif

作成したアクションのNameプロパティとCaptionプロパティを設定します。

  • ActionRunPresentation … スライドショー
  • ActionGoToNextSlide … 次のスライド
  • ActionGoToPreviousSlide … 前のスライド
  • ActionGoToFirstSlide … 最初のスライド
  • ActionGoToLastSlide … 最後のスライド
_images/105.gif
_images/106.gif

ボタンにアクションを割り当てます。

_images/107.gif

実装

PowerPointに接続する

アプリケーションを起動した時にPowerPointに接続します。

まず、フォームのメンバ変数を追加します。

private
  { Private 宣言 }
  FPowerPointApp: OLEVariant;

フォームのOnShowイベントを追加します。

uses System.Win.ComObj;

procedure TForm1.FormShow(Sender: TObject);
begin
  try
    Self.FPowerPointApp := CreateOleObject('PowerPoint.Application');
  except
    on E: Exception do
      ShowMessage('接続できませんでした。' + #13#10 + E.Message);
  end;
end;

PowerPointのスライドを操作する

PowerPointを操作するアクションを実装します。

スライドショー … スライドショーを開始します。

procedure TForm1.ActionRunPresentationExecute(Sender: TObject);
begin
  Self.FPowerPointApp.ActivePresentation.SlideShowSettings.Run;
end;

次のスライド … 次のスライドを表示します。

procedure TForm1.ActionGoToNextSlideExecute(Sender: TObject);
begin
  Self.FPowerPointApp.ActivePresentation.SlideShowWindow.View.Next;
end;

前のスライド … 前のスライドを表示します。

procedure TForm1.ActionGoToPreviousSlideExecute(Sender: TObject);
begin
  Self.FPowerPointApp.ActivePresentation.SlideShowWindow.View.Previous;
end;

最初のスライド … 最初のスライドを表示します。

procedure TForm1.ActionGoToFirstSlideExecute(Sender: TObject);
begin
  Self.FPowerPointApp.ActivePresentation.SlideShowWindow.View.First;
end;

最後のスライド … 最後のスライドを表示します。

procedure TForm1.ActionGoToLastSlideExecute(Sender: TObject);
begin
  Self.FPowerPointApp.ActivePresentation.SlideShowWindow.View.Last;
end;

動作確認

ここまで完成したら、動作を確認します。

あらかじめPowerPointを起動した状態で、アプリケーションを起動します。

各ボタンをしてスライドショーの表示を確認します。

アプリケーションテザリング機能を追加する

作成したアプリケーションをリモートのアプリケーションから操作できるように、アプリケーションテザリングの機能を追加します。

TTetheringManagerコンポーネントとTTetheringAppProfileコンポーネントをフォームに配置します。

_images/001.gif
_images/108.gif

TetheringAppProfile1のManagerプロパティを「TetheringManager1」にします。

TetheringAppProfile1のGroupプロパティを「PowerPointRemoteControl」にします。

_images/109.gif

次に共有するアクションを設定します。

TetheringAppProfile1のActionsプロパティの[...]ボタンを押します。

_images/110.gif

新規追加ボタンを5回押して、5つ追加します。

_images/111.gif

追加した5つのアクションのActionプロパティにアクションリストで作成した5つのアクションをそれぞれ設定します。

_images/112.gif

Windowsアプリケーションを操作するFireMonkeyモバイルアプリケーションの作成

作成したWindowsアプリケーションを操作するFireMonkeyモバイルアプリケーションを作成します。

_images/127.gif

プロジェクトの作成

FireMonkeyモバイルアプリケーションのプロジェクトを追加します。

_images/113.gif

フォームの作成

フォームに次のコンポーネントを配置します。

  • TPanel … Align=Top
    • TLabel … Align=Client
    • TButton … Align=Right
  • TGridPanelLayout … Align=Client
    • TButton … Align=Client
  • TActionList
  • TTimer
  • TTetheringManager
  • TTetheringAppProfile
_images/114.gif
_images/115.gif

接続処理

TetheringAppProfile1のManagerプロパティを「TetheringManager1」に、GroupプロパティをWindowsアプリケーションと同じ「PowerPointRemoteControl」にします。

_images/122.gif

アクションリストに新しいアクションを作成します。

_images/116.gif

右上のボタンに作成したアクションを設定します。

_images/117.gif

アクションのOnExecuteイベントを追加します。

procedure TForm2.ActionConnectExecute(Sender: TObject);
begin
  TetheringManager1.AutoConnect();
end;

次にTimer1のOnTimerイベントを追加します。

procedure TForm2.Timer1Timer(Sender: TObject);
begin
  if TetheringManager1.RemoteProfiles.Count > 0 then
  begin
    Label1.Text := '接続中';
  end
  else
  begin
    Label1.Text := '接続していません。';
  end;
end;

動作確認

ここまで完成したら、動作を確認します。

作成済みのWindowsアプリケーションと作成したFireMonkeyモバイルアプリケーションを起動します。 (実機で実行する場合は端末をWindowsパソコンと同じLANに接続してください。)

_images/118.gif

起動したら接続ボタンを押します。 接続に成功したら、「接続しました。」のメッセージが表示され、ラベルの表示が「接続中」に変わります。

_images/119.gif

このアプリケーションでは、記述するコードはこれだけです。

リモートアクションの実行

Windowsアプリケーションのアクションを実行する処理を追加します。

アクションを5つ作成します。

  • ActionRunPresentation … スライドショー
  • ActionGoToNextSlide … 次のスライド
  • ActionGoToPreviousSlide … 前のスライド
  • ActionGoToFirstSlide … 最初のスライド
  • ActionGoToLastSlide … 最後のスライド
_images/120.gif

ボタンにアクションを割り当てます。

_images/121.gif

アクションのOnExecuteイベントは実装しません。

TetheringAppProfile1のActionsプロパティの[...]ボタンを押します。

_images/123.gif

アクションを5つ追加します。

_images/124.gif

追加した5つのアクションのActionプロパティにアクションリストで作成した5つのアクションをそれぞれ設定します。 Kindプロパティは「Mirror」にします。

_images/125.gif

動作確認

ここまで完成したら、動作を確認します。

PowerPointと作成済みのWindowsアプリケーションと作成したFireMonkeyモバイルアプリケーションを起動します。

起動したら接続ボタンを押して、接続します。

「スライドショー」「次のスライド」「前のスライド」「最初のスライド」「最後のスライド」のボタンを押して、PowerPointのスライドが切り替わることを確認します。

ぜひ実機で試してください。