おはよう!SharedMemの理解
現在、Firemonkey/FMXを使用してさまざまな機能を備えたデスクトップインターフェイスを設計しています。これらの機能の1つは、「パネル」内に情報を表示する機能です。この「パネル」は、title
およびcontext
(両方ともtlabel
)およびimage
(timage
)からなります。アプリケーションと対話したい "アプリケーション"ごとに1つのパネルが作成されます。各パネルには、作成するプロシージャを呼び出すときに割り当てられた変数を使用して作成された名前が付けられています。これは他の開発者がパネルに簡単にアクセスできるように設計されていますが、これが悪用される可能性があるため、bindingname
に切り替えることができます。
変数に基づいてこれらのパネルのいずれかを作成するためのコードと、ネストされた反復.children
とFindComponent
ループに基づいてラベルとイメージレベルに型キャストするコードを書きました。自由に変更できますこのメソッドを使用してラベルまたはテキストのテキスト(.loadfromfile
)を使用します(つまり、コードが動作します)。しかし、私はこの機能を他のアプリケーションや開発者に公開して、実際にこれらの「パネル」の中に情報を表示したいので、私は共有メモリで作業する必要があります。
問題は私が本当に理解できないことです。私が読んだことは、SharedMemを使うのは簡単だが、私はそれを全く理解できないことを意味する。 XE2のサンプルに含まれる簡単な例でさえ、私を混乱させます。残念なことに、IPCを理解するために何度も試したにもかかわらず、IPCを全く理解していません。私はinifilesを使うことができましたが、私は彼らに柔軟性が要求されるとは感じません。私はGlobalAtomTable
と考えていましたが、SharedMemの場合と同様、どちらも理解できません。デルファイで漏洩しているとは言えません。
私は最初に共有メモリの領域を作成する関数/プロシージャを探しています。私は実際にその共有メモリから文字列を読み込んで、result
を出力して他のプロシージャや関数を介してアクセスする関数を探しています。私は私の他のプロジェクトをこれと互換性を持たせたいので、別のアプリケーションから共有メモリに値を書き込むための手続き/関数を得ることも考えています。
私が言ったように、私はIPCやSharedMemを理解していないので、より高度なレベルまで自分が仕事をして教えることができる基本的な出発点が本当に必要です。私が学ばれることを望んでいるものにステップバイステップのウォークスルーが大いに評価されます。私は、これまでIPCと協力していたはずのものだから、ちょっとしたコードを書くのではなく、これを学びたいと思っています。
共有メモリは答えではありません。あなたは同期する必要があります。それはあなたのニーズにはあまりにも低レベルです。 TCP/IPの上に構築されたものは、より賢明に聞こえ、クロスプラットフォームに簡単になります。また、リモートマシンに容易に拡張できます。 –
@ken私はSharedMemで考えるScottはCreateFileMappingのように共有メモリを意味します。 –
@David、そうです。読み込みが速すぎる(「SharedMem」ではなく「ShareMem」を見た)、読み込みが遅すぎる。 :)コメントを削除します。 –