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

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

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

作成したアクションのNameプロパティとCaptionプロパティを設定します。
- ActionRunPresentation … スライドショー
- ActionGoToNextSlide … 次のスライド
- ActionGoToPreviousSlide … 前のスライド
- ActionGoToFirstSlide … 最初のスライド
- ActionGoToLastSlide … 最後のスライド


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

実装¶
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;
アプリケーションテザリング機能を追加する¶
作成したアプリケーションをリモートのアプリケーションから操作できるように、アプリケーションテザリングの機能を追加します。
TTetheringManagerコンポーネントとTTetheringAppProfileコンポーネントをフォームに配置します。


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

次に共有するアクションを設定します。
TetheringAppProfile1のActionsプロパティの[...]ボタンを押します。

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

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

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

フォームの作成¶
フォームに次のコンポーネントを配置します。
- TPanel … Align=Top
- TLabel … Align=Client
- TButton … Align=Right
- TGridPanelLayout … Align=Client
- TButton … Align=Client
- TActionList
- TTimer
- TTetheringManager
- TTetheringAppProfile


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

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

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

アクションの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に接続してください。)

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

このアプリケーションでは、記述するコードはこれだけです。
リモートアクションの実行¶
Windowsアプリケーションのアクションを実行する処理を追加します。
アクションを5つ作成します。
- ActionRunPresentation … スライドショー
- ActionGoToNextSlide … 次のスライド
- ActionGoToPreviousSlide … 前のスライド
- ActionGoToFirstSlide … 最初のスライド
- ActionGoToLastSlide … 最後のスライド

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

アクションのOnExecuteイベントは実装しません。
TetheringAppProfile1のActionsプロパティの[...]ボタンを押します。

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

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

動作確認¶
ここまで完成したら、動作を確認します。
PowerPointと作成済みのWindowsアプリケーションと作成したFireMonkeyモバイルアプリケーションを起動します。
起動したら接続ボタンを押して、接続します。
「スライドショー」「次のスライド」「前のスライド」「最初のスライド」「最後のスライド」のボタンを押して、PowerPointのスライドが切り替わることを確認します。
ぜひ実機で試してください。