おやすみなさい。私はEmbarcadero Xe8のC++ Builderで書いています。私はイオスとアンドロイドでモバイルアプリケーションプロジェクトを行い、そのような問題に直面しました。電話ロック画面を捕らえることができません。私はいつもそうするために使用:キャッチロック画面イベント
bool TForm1::HandleApp(TApplicationEvent a, TObject *x)
{
if (a == TApplicationEvent::EnteredBackground)
{
MediaPlayer1->Stop();
}
return true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
_di_IFMXApplicationEventService a;
if (TPlatformServices::Current->SupportsPlatformService(__uuidof(IFMXApplicationEventService), &a))
{
a->SetApplicationEventHandler(TForm1::HandleApp);
}
}
しかしエラー:
\Unit1.cpp(33): cannot initialize a parameter of type 'TApplicationEventHandler' (aka 'bool (closure *)(Fmx::Platform::TApplicationEvent, System::TObject __borland_class *__strong) __attribute((pcs("aapcs-vfp")))') with an lvalue of type 'bool (__closure *)(Fmx::Platform::TApplicationEvent, System::TObject __borland_class *__strong)' FMX.Platform.hpp(252): passing argument to parameter 'AEventHandler' here
私が何をしようとする他に何を知ってはいけません!手伝っていただけませんか?
サイドノートでは、C++で 'OnCreate'イベントを使用すべきではありません。これは、C++で不正な動作を引き起こす可能性のあるDelphiのイディオムです。代わりにクラスコンストラクタをオーバーライドしてください( '__fastcall TForm1(TComponent *)')。 –