問題タブ [delphi-xe]
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 - クライアントがまだ接続している間に DataSnap サーバーを更新するにはどうすればよいですか?
一部のビジネス ロジック タスクにはステートフルな DataSnap サーバーを使用し、クライアント データセット データを提供します。
ビジネス ルールを変更するためにサーバーを更新する必要がある場合は、新しいバージョンを新しい空のフォルダにコピーして登録します (Delphi のバージョンに応じて、TRegSvr ユーティリティを起動または実行するだけです)。
これは、古いサーバー インスタンスの実行中でも実行できます。ただし、新しいバージョンを登録した後は、すべての新しいクライアント接続で、現在実行中の (古い) サーバー インスタンスが引き続き使用されます。最初にすべてのクライアントを切断する必要があります。その後、新しいサーバーが次のクライアントに使用されます。
登録直後に、すべての新しいクライアント接続を新しいサーバーに転送する方法はありますか?
(新しいまたは変更されたメソッド署名にはクライアントの変更と再起動も必要であることは知っていますが、この質問はインターフェイスに影響を与えない内部変更に関するものです)
ソケット接続を使用しており、すべてのクライアントが同じサーバー アプリケーションを共有しています (1 つのアプリケーション ウィンドウのみが開いています)。初期の頃は、クライアントごとに 1 つのアプリ ウィンドウになるリモート データ モジュールの別の構成を使用していました。多分これは解決策になるでしょうか?(すべての新しいクライアントが現在登録されている実行可能ファイルを起動するため)
更新: Delphi XE は、(更新されたサーバーの) 「ホット デプロイメント」をサポートしていますか? 現在、Delphi 2009 を使用していますが、「ホット デプロイメント」の実装がより簡単であれば、XE にアップグレードします。
delphi - RAD Studio 2011 ( ? )
Embarcadero の Delphi / cbuilder の次のバージョン (2011) に関する情報はありますか?
次の Delphi / cbuilder に関連する情報へのリンクはありますか?
delphi - Delphi 2010/Delphi XE のフリーウェア ZIP コンポーネント?
Delphi 2010またはXEと互換性があり、ZIP アーカイブを管理するための無料のコンポーネントを知っていますか(実際には、アーカイブの内容の読み取りとファイルの抽出のみが必要です)。
ベータ版はありません。
ComponentAce の ZipForge も考えましたが、個人利用に限り無料です。ソフトウェアの配布は許可されていません。
delphi - 特定のインターフェイスを実装するすべてのDelphiクラスを列挙しますか?
Delphi 2010の新しい拡張RTTIを使用すると、Delphiアプリケーションは(実行時に)特定のインターフェイスを実装するすべてのクラスのリストを作成できますか?
delphi - win32 VCL アプリケーションをクロス プラットフォームにアップグレードする
Delphi 2011 では、Mac OS でも実行されるアプリケーションをコンパイルできます。(注: この文は、Delphi-XE のプレビューが公開される前に書きました。当時、誰もが ProjectX について話していました)。
win32アプリケーションを「クロスプラットフォームに移行」することが可能になると考えるのは現実的ですか?
サード パーティのコンポーネント ベンダーはライブラリをクロス プラットフォームにする予定ですか、それとも実際には不可能ですか?
次のサードパーティ コンポーネントを使用しています。
devexpress - UI
デバート - DAC
レポートビルダー - UI
Steema/TeeChart - UI
ウィザードが私に代わって仕事をしてくれるとは思っていません。詳細をよりよく理解したいだけです。
delphi - Delphi System ユニットの TMonitor は何に適していますか?
「The Oracle at Delphi」(Allen Bauer)の記事「Simmering Unicode、DPL を沸騰させる」および「Simmering Unicode、DPL を沸騰させる (パート 2)」を読んだ後、Oracle は私が理解するすべてです:)
この記事では、Delphi Parallel Library (DPL)、ロック フリー データ構造、相互排他ロック、および条件変数について言及しています(このウィキペディアの記事では、「モニター (同期) 」に進み、スレッド同期用の新しいTMonitor レコード タイプを紹介し、そのいくつかについて説明します。メソッド。
この Delphi レコード タイプをいつ、どのように使用できるかを示す例を含む紹介記事はありますか? オンラインでいくつかのドキュメントがあります。
TCriticalSection と TMonitor の主な違いは何ですか?
Pulse
メソッドとメソッドを使用して何ができPulseAll
ますか?たとえば、C# や Java 言語に対応するものはありますか?
RTL または VCL にこの型を使用するコードはありますか (例として役立つ可能性があります)。
更新: Delphi 2009 で TObject のサイズが 2 倍になった理由の記事 Delphi のすべてのオブジェクトは、TMonitor レコードを使用してロックできるようになったと説明していますが、インスタンスごとに 4 バイトの追加料金がかかります。
TMonitor は、Java 言語の Intrinsic Locksと同様に実装されているようです。
すべてのオブジェクトには固有のロックが関連付けられています。慣例により、オブジェクトのフィールドへの排他的かつ一貫したアクセスを必要とするスレッドは、オブジェクトにアクセスする前にオブジェクトの固有ロックを取得し、それらの操作が完了したら固有ロックを解放する必要があります。
Delphi のWait、Pulse、およびPulseAllは、Java プログラミング言語の wait() 、 notify() 、および notifyAll() に相当するようです。間違っていたら訂正してください:)
更新 2: Java(tm) チュートリアルの保護されたメソッドに関する記事に基づいて、 と を使用するProducer/Consumer アプリケーションのサンプル コード(コメントを歓迎します):TMonitor.Wait
TMonitor.PulseAll
この種のアプリケーションは、データを作成するプロデューサとデータを処理するコンシューマの 2 つのスレッド間でデータを共有します。2 つのスレッドは、共有オブジェクトを使用して通信します。調整は不可欠です。コンシューマー スレッドは、プロデューサー スレッドがデータを配信する前にデータの取得を試みてはならず、コンシューマーが古いデータを取得していない場合、プロデューサー スレッドは新しいデータの配信を試みてはなりません。
この例では、データは一連のテキスト メッセージであり、Drop タイプのオブジェクトを通じて共有されます。
現在、これは期待どおりに機能しますが、改善できる詳細がありTMonitor.Enter(Self);
ます。Drop インスタンス全体を でロックする代わりに、(プライベート) "FLock" フィールドを使用して、 Put および Take メソッド by TMonitor.Enter(FLock);
.
InterruptedException
コードを Java バージョンと比較すると、Delphi には の呼び出しをキャンセルするために使用できるものがないことにも気付きSleep
ます。
更新 3 : 2011 年 5 月に、OmniThreadLibrary に関するブログ エントリで、TMonitor 実装のバグの可能性が示されました。Quality Centralのエントリに関連しているようです。コメントには、パッチが Delphi ユーザーによって提供されたことが記載されていますが、表示されません。
更新 4 : 2013 年のブログ投稿では、TMonitor は「公正」ですが、そのパフォーマンスはクリティカル セクションのパフォーマンスよりも悪いことが示されました。
delphi - ジェダイ ライブラリと Delphi XE
通常、JEDI ライブラリのインストールはインストーラを使用して行います。インストーラーかどうか知っている人はいますか
- Rad Studio XE (Delphi および Builder) で動作
- そうでない場合は、そうするように簡単に変更できます
- いくつかの手動インストール手順を知っていますか?
ありがとう
delphi - C ++ Builder XEのIWFile修正?
IWFileは、RadStudioXEの現在のリリースでは壊れています。これを修正するために、DelphiユーザーはUTF8ContentParser行を削除するように求められます。http://www.atozed.com/intraweb/blog/20100524.EN.aspx
c ++ Builderには、#includesUTF8ContentParser.hppという行があります。この行をコメントアウトしても問題は解決しません。
誰かがC++Builderのためにこれを回避する方法を考え出しましたか?
delphi - Delphi XE:失われたライブラリパス
Delphi 2010からアップグレードした後、DelphiXEのライブラリパスのほとんどを失いました。
これで、いくつかの単純なアプリでさえコンパイルに失敗します。
ライブラリパスにあった失われたディレクトリエントリを回復する方法はありますか?
編集:私はこの問題の驚くべき解決策を見つけました、ただこのレジストリキーを削除してください:
HKEY_CURRENT_USER \ Software \ Embarcadero \ BDS \ 8.0 \ Library
Delphiを再起動すると、レジストリ内のキーが正しいデフォルト値で再度生成されますが、サードパーティは失われます。少なくとも今は機能しています。
同じ問題を抱えている人に役立つことを願っています:)
delphi - 任意のタイプに属するユニット名の取得 (TRttiType)
任意のユニット (名前空間) の名前を取得する必要がありますTRttiType
。
これまでのところ、私は次のことを試しました。
1) を使用するPTypeData.UnitName
と、このソリューションは機能しますが、TTypeKind が tkClass の場合のみです。
2) プロパティの解析QualifiedName
、このソリューションは今まで問題なく機能していましたが、私はあまり満足していません。
問題は、ユニット名を取得する別の信頼できる方法があるかTRttiType
どうかです。