問題タブ [delphi-xe7]
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.
delphi - FireMonkey の自己署名クライアント証明書と TRestClient コンポーネント
社内で開発されるサーバーと通信する FireMonkey を使用してマルチプラットフォーム クライアント アプリを構築しているため、このシナリオでは自己署名証明書の使用を探していました。
この記事: SSL / HTTPS on different platform with TIdHTTP and TRESTClientによると、TRestClient はそのままで SSL をサポートしているようで、TidHTTP のように IO ハンドラを割り当てる必要はありません。問題は、 IdSSLIOHandlerSocketOpenSSL コンポーネントを使用して行うことができる方法で、自己署名証明書を TRestClient に割り当てる方法が見つからないことです。また、TRestClient.HTTPClient は、Indy の HTTP のように IOHandler プロパティを公開していないようです。
私の質問は次のとおりです。Delphi XE7 の TRestClient コンポーネントに自己署名証明書を提供する方法はありますか?
delphi - Delphi XE-7 および Indy 10.6.0.5169 用の単純な UDP サンプル/デモ アプリケーション
Delphi XE-7 および Indy 10.6.0.5169 用の単純な UDP サンプル/デモ アプリケーションを探しています。
私はしばらく探していましたが、見つけ続けているものはすべて、コンパイルされなくなった古いバージョンの Indy または Delphi のものです。
WS-Discovery メッセージを処理するには、UDP クライアントを実装する必要があります。
ここにリストされているアプリケーションを使用しようとしました:
http://delphi.about.com/library/weekly/code/src101105.zip
SendBuffer
ここでエラーが発生しています:
delphi - Delphi XE2 以降のファイル バージョンを取得する
Delphi 2010 から Delphi XE7 にプログラムを更新しています。下に示すコードは、Unicode に適応し、GetFileVersionInfoSize の代わりに GetFileVersionInfoW を使用する必要があるため、動作を停止しました。
以下に示す、私が使用していた関数の最新バージョンを開発した人はいますか? これまでウェブ上で例を見つけることができず、低レベルの Windows プログラミングは私には少し理解できないのではないかと心配しています。
助けてくれてありがとう!
以下の古いコードは Delphi XE2 以降では動作しません: 1.0.0.0 を返すだけです
delphi - Android Delphi Xe7 でキーボードを閉じるとアプリがクラッシュする
新しいプロジェクトを作成します。フォームに 2 つの TEdit をドロップします。Android デバイスにデプロイします。アプリを起動します。TEdit をタップしてキーボードを表示し、携帯電話のハードウェアの [戻る] ボタンを押します... クラッシュ... これは私に特有のものですか? または他の人がこれを確認できますか?私がやっていることに何か問題がありますか?フォームと TEdits の keydown イベントで Key:=0 を設定しようとしましたが、うまくいきませんでした - アプリはまだクラッシュします。
Delphi XE7 アップデート 1 がインストールされました。
delphi - 依存スイッチでの印刷
SW_A、SW_B、SW_ALL という 3 つのスイッチがあるとします。
SW_A が (オフからオンに) クリックされると、TMemo は「SW_A is on」と出力し、SW_B についても同じことが機能します。
ただし、SW_ALL をクリックすると (オフからオンに)、TMemo は 'SW_ALL is on' を出力し、'SW_A is on' と 'SW_B is on. '
私の問題は、SW_All がクリックされるたびに、他のスイッチもその状態を出力することです。問題を解決する方法を知っている人はいますか?ありがとう!!
forms - Delphi: ネイティブ コントロールを使用してマルチデバイス アプリケーションを構築する方法は?
または「Delphi で UI をビジネス ロジックから分離する方法は?」
各ターゲット プラットフォームには、固有の firemonkey コントロールの独自のセットがあります (Windows= VCL
、MacOS= TMS mCL
、Android= D.P.F
、iOS=TMS iCL
およびD.P.F
)。新しいFireUI
(マルチデバイス フォーム デザイナー) は、スタイル付きコンポーネントには優れたソリューションですが、すべてのプラットフォームをサポートするにはマスター ペインに同じコンポーネントが必要なため、ネイティブ コンポーネントには適していません。それらを同じフォームに混在させることはできないため、Delphi のアイデア全体が完全に壊れてしまいます。
多くの開発者は、Delphiは壊れたアプローチであると言うでしょう。ただし、この質問の前提は、Delphiに反対することではなく、Delphi が提供するものから最良の結果を得ることです。
結論として、アプリケーションのフォームごとに、ターゲット プラットフォームごとに個別のフォームを作成する必要があります。これは、次の質問につながります。
課題 1 : ターゲット プラットフォームに応じてプロジェクトに異なるフォーム ファイルを含める方法は?
解決策 1 : MainForm_IOS.pas、MainForm_Android.pas、MainForm_Win、MainForm_OSX.pas などのすべてを含め、ファイル内でコンパイラ ディレクティブを使用して、ファイルの 1 つのコンテンツのみがアクティブになるようにします。欠点: 大規模なアプリケーションには多くのフォーム (約 40 あります) を含めることができるため、多数のインクルード ファイルについて話していることになります。
解決策 2 : それらをプロジェクトに含めずに、別のフォルダーに配置します。次に、一致するフォルダーを各ターゲット プラットフォームの検索パスに追加できます。欠点: プロジェクト マネージャーに表示されないため、ファイルを探す必要があるたびにワークフローが遅くなります。
解決策 3 : ターゲット プラットフォームごとにプロジェクトを作成します。欠点: 新しいユニットを追加したり、共通のプロジェクト設定を変更したりするたびに、それをすべてのプロジェクトに適用する必要があります (忘れずに)。
更新: Malcom Groves ビデオで提案されているように、すべてのビジネス ロジックをパッケージに配置すると、ソリューション 3 の欠点が取り除かれます。したがって、ソリューション 3 が最善のアプローチであると考えています。
課題 2 : 異なるデバイス フォームを (同じ) ビジネス ロジックに接続する方法は?
考えられる解決策: 通常はフォーム ユニットに含まれるすべてのコードを含む「ヘルパー」クラスを作成します。
更新: この「ヘルパー クラス」は、実際には MVVM が と呼んでいるものViewModel
です。私が必要としているのは、データバインディングをサポートできる MVVM フレームワークのようです。私はそれについて別の質問をしました。
ベスト プラクティスに関する意見や提案を歓迎します。