問題タブ [delphi-xe5]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - Firemonkey iOS 共有データ
この質問を重複または回答済みとしてマークしないでください。特に Delphi のサポートが必要ですが、コードに関する回答はありません (間違っている場合は教えてください)。また、タグで指定されているように、XE5 に関するヘルプを探していることにも注意してください。
iOS 上のアプリケーション間でデータを共有するためのコードについてサポートが必要です。これに関する理論は、 Share data between two or more iPhone applicationsで読みました。
ファイルを共有する方法については理解できましたが、Firemonkey とのデータ共有に関しては何も見つかりません。TMS による Flexcell を使用したファイル共有に関する情報をいくつか見つけましたが、それは他のファイルでドキュメントを開くことにのみ関連しています。
特に、アプリ間で XML のようなドキュメントを共有して、アプリが XML を介してデータを通信できるようにしたい (xml からデータを読み書きする)。
Firemonkey 3 と XE5 を使用してこれを成功させた人はいますか?
android - Firemonkey Android Access のカレンダーとイベント
Delphi XE5 を使用して Android でカレンダーとイベントにアクセスするにはどうすればよいですか。
android - iOS および Android で指を押した位置を取得する
Android(およびiOS)向けの開発にDelphi XE5を使用しています。
Delphi XE5 で Touch プロパティの InteractiveGestures を使用すると、Zoom、Pan、Rotate、TwoFingerTap、PressAndTap、LongTap、DoubleTap の GestureEvent を取得できます。これらにはすべて、イベントの場所を取得できる TGestureEventInfo オブジェクトが付属しています。指の座標。
ただし、単純なタップ/プレスのジェスチャはないようです。この場合、OnClick イベントが発生することはわかっていますが、OnClick イベントにはTGestureEventInfo オブジェクトが付属していないため、タップの位置を取得できません。これは、情報を得るために非常に重要なイベントのようです。
何か不足していますか?単純なタップ ジェスチャの位置を取得するにはどうすればよいですか?
android - 複数のスレッドでビットマップをペイントすると、Windows と Android で結果が異なります
私のアプリは、マンデルブロ フラクタルの画像を作成します。これは、データの行を計算し、これらを色の行に変換し、次にこの行をビットマップにコピーすることによって行われます。最初に、これは連続した方法で行われ、うまく機能しました。現在、複数のスレッドでこれを実行しようとしています。各スレッドは独自の一連の行を計算します。たとえば、スレッド 0 は 0、4、8、12、... を計算します。スレッド 1: 1、5、9、...; スレッド 2: 2、6、10、...、スレッド 3: 3、7、...、この例では、4 つのスレッドが使用されています (FMax_Threads = 4)。クリティカル セクション (グローバルに宣言されている) は、複数のスレッドが同時にビットマップを書き込むことを防止する必要があります。別のグローバル変数 (Finished_Tasks) を使用して、書き込まれた行数を追跡します。それが行数と等しくなるとすぐに、計算が行われます。
同じコードは Windows では問題なく動作しますが、Android ではビットマップが文字化けします。以前、 Windows は Android よりもエラーに対して寛容であることに気付きました。誰かが私が間違っていることを正確に知っていますか?
以下のユニットは、スレッド化されたマンデルブロを計算します
そして、次のように呼ばれます。
ご想像のとおり、Image はフォーム上の TImage です。
どんな助けでも大歓迎です!
Update 1 LU RD と David の発言により、アルゴリズムを再考するようになりました。その結果、FBitmap.Canvas.EndScene が TParallelMandelbrot.compute 関数にないことがわかりました。アプリがWindowsとAndroidの両方で動作することを修正したとき。
最初に、TAlphoColor のマトリックスを使用し、すべての計算が完了したときにこれをビットマップにコピーすることで、重要なボトルネックを取り除きました。これにより、反復回数 (64 回と 4096 回) に応じて、ビットマップの再描画速度が 5/8 から 3 倍短縮されました。反復回数が多く、計算量が多いほど、ボトルネックが発生する可能性が低くなり、数値にうまく反映されています。もう 1 つの提案は、WaitFor を使用することでした。これにより、クリティカル セクションとボトルネックを取り除く可能性がもたらされました。Finished_Tasks の更新と同様に、唯一のステートメントが残っていたので、タイミング結果でこれを見つけることができませんでした。ただし、コードは大幅に改善されました。
LU RD は AlphaColorToScanline について言及しました。VCL 時代に ScanLine で素晴らしい結果を得たので、素晴らしい結果が得られると期待していました。今はそうではありません。ノイズ以外のスキャンラインを使用した場合の違いを検出できませんでした。さらに悪いことに、Android では赤と青のバイトが入れ替わっています。Windows では正しく表示されます。
以下にコードを公開しましたので、ご自分で確認してください。いくつかのタイミング結果の下 (Windows = ハイパースレッド、2.67Ghz を備えたコア i7-920 4 コア; Android = ARMv7、1Ghz、2(?) コア)
以下の TParallelMandelbrot での計算を参照してください。追加された末尾の EndScene ステートメントをマークします。Windows はあまり気にしませんが、Android は気にします。中断されていないスレッドを作成するようになりました。スレッドを開始する必要はもうありません。改善はほとんど目立ちません。
TCompute の計算機能:
Update 2 最終的な判断は、TBitmap はスレッド セーフではないということです。このリンクを参照してください(これは Embarcadero wiki のどこかにありますが、再検索できませんでした。これは私が見つけた唯一の参照です)。これは、中間コロット行列を使用することがなぜ良い考えなのかを説明しています!
ご提案いただきありがとうございます。
ios - アプリがまだ実行されていない場合にプッシュ通知を送信するにはどうすればよいですか?
ユーザーがまだアプリを起動していないが、以前に実行されたと仮定します。ニュース/更新を「プッシュ」する方法はありますか?
私が何を意味するかを説明するには: ユーザーが「あなたの地域のレストラン」ローカル向けアプリをインストールし、新しいレストランがオープンしたときにユーザーに通知するようにアプリを設定したと想像してください...しかし、ユーザーは実行するのを忘れています日常的にこのアプリ。アプリが iOS 内でニュースを自動表示する方法はありますか?
XE4 でこれを見つけました。Anders は、人々が XE4 で動作するように手助けしようとしています http://blogs.embarcadero.com/ao/2013/05/02/39456
http://blogs.embarcadero.com/ao/2013/05/24/39472
さらに検索した後(この最初のラウンドを見逃しました)、これを見つけました:
http://edn.embarcadero.com/article/43239
Delphi XE4 にバンドルされたソース ファイルを編集する必要があります (つまり、公式にサポートされていないため、XE4 で簡単に作成できません) が、動作させることができるようです。(XE5 での公式の「組み込み」サポートについての公式な言及は見つかりませんでした。)
ある意味で役立ったので、私はソファルを与えられた答えに賛成票を投じました。
ios - iOS は、Delphi を使用してキーチェーンを介してデータを共有します
したがって、KeyChain を介してデータを共有することは間違いなく可能です。私の問題は、Delphi を使用して Firemonkey でこれを実装することです。まず、キーを共有するために Firemonkey で使用する適切なライブラリまたは API はありますか? 第二に、Delphi 経由でこれを行うためのサンプル コードはありますか?