問題タブ [delphi-2009]
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 - Delphi 2009、Indy 10、TIdTCPServer.OnExecute、InputBuffer 内のすべてのバイトを取得する方法
Delphi 2009 で提供されている Indy 10 をいじっていて、OnExecute が起動したときに IOHandler からすべてのデータを取得するのに問題があります...
AContext.Connection.IOHandler.InputBuffer.Size は信頼性が低く、多くの場合 0 を返しますが、次に OnExecute を実行すると正しいバイト数が取得されますが、それでは遅すぎます。
基本的に、すべてのデータを取得し、それを UTF8String ( Unicode 文字列ではない) に詰め込み、特別なマーカーを解析できるようにしたいと考えています。したがって、ヘッダーはなく、メッセージは可変長です。Indy 10 IOHandlers がこのためにセットアップされていないか、間違って使用しているようです。
特定のサイズのバッファを渡し、可能な限りいっぱいにして、実際にいっぱいになったバイト数を返し、それ以上ある場合は続行するなどのことを行うとよいでしょう。
余談ですが、TIdSchedulerOfFiber のステータスはどうなっているのでしょうか。これは非常に興味深いようですが、機能しますか? 誰かがそれを使用していますか?ただし、Delphi 2009 の標準インストールには含まれていません。
更新: Msg := AContext.Connection.IOHandler.ReadLn(#0, enUTF8); が見つかりました。これは機能しますが、上記の質問に対する答えを知りたいのですが、IO のブロックに基づいているためですか? これにより、この TIdSchedulerOfFiber がさらに熱心になります。
database - 多層Delphiアーキテクチャへの移行に関するアドバイス
Firebird(ストアドプロシージャ、ビューなど)に強く結びついている比較的大きなアプリケーションがあります。現在、追加のデータベースをサポートするための多くのリクエストが寄せられています。また、多くの機能をクライアントからサーバーに移動したいと考えています。
今は、3(4)層アーキテクチャに移行する良い機会のようです。DataSnap2009とRemObjectsSDK/DataAbstractについてはすでに見てきました。どちらも仕事をしているように見えますが、注意すべき長所/短所はありますか?他に推奨できるフレームワークはありますか?
乾杯、ポール
delphi - Datasnap : 接続損失をグローバルに検出する方法はありますか?
ローカル接続の切断を検出しようとしています。Corelabs コンポーネントのイベントと同様に、それを行う手段はありますか?
ありがとう
編集: 申し訳ありませんが、より具体的にしようと思います: 現在、datasnap 2009 を使用してプロトタイプを設計しています。つまり、シン クライアント、ステートレス サーバー アプリ、およびデータベース サーバーがあります。
私ができることは、クライアントとサーバーアプリ間の接続損失(インターネット接続)を検出して処理し、適切に処理することです。つまり、ユーザーに有益なエラーメッセージを表示するか、サーバーのシャットダウンを検出して静かにリダイレクトします別のアプリ サーバー。
ODAC コンポーネントで管理していた 2 層では、TOraSession にこの問題を処理するためのイベントがいくつかあります。
delphi - コマンドラインからのDelphiMSBuildビルド構成
Delphi2009はビルド構成を使用します。新しいプロジェクトを作成する場合、2つのデフォルトのビルド構成「デバッグ」と「リリース」があります。
ここで、MSBuild(バージョン2007以降Delphiでサポートされている)を使用してビルドを自動化する方法を自問しました。
Delphiプロジェクトディレクトリの「RADStudioコマンドプロンプト」で「msbuild」コマンドを開始すると、デフォルトのビルド構成(Delphi IDE内で最後にアクティブ化されたビルド構成)がビルドされます。
ここで、コマンドラインパラメーターによって特定の(デフォルト以外の)ビルド構成を指定したいと思います。
Delphiヘルプは、パラメータが[/ p:configuration = <configuration name
>]であると主張しますが、これは間違っています(Delphi 2009、ヘルプアップデート1)。
正しい方法は何ですか?
delphi - Delphi 2009 の OnKeyDown が Delphi 2007 のようにトラップしない
私はこのコードを持っています
Delphi 2007 では問題なく動作しました。Delphi 2009 にアップグレードして任意の文字を押しようとすると、それが受け入れられ、キー := 0 が入力をトラップしませんか?
誰も同じ動作に遭遇しましたか?
delphi - Delphi 2009 の TShellListView はどこにありますか?
最近、Delphi 2009 に移行しました。TShellListView コントロールと TShellTreeView コントロールが見つかりません。追加の何かをインストールする必要がありますか?
Web を検索すると、Delphi 2009 に同梱されているようですが、何らかの理由でインストールされていません。
誰かが同様の問題を抱えていましたか?
ここで答える
delphi - Vista 用の大きいアイコンを使用する Delphi 2009 アプリケーション
Delphi 2009 アプリケーションで Vista の大きなアイコン機能を使用したいのですが、通常の 32x32 アイコンしかアプリケーションに埋め込むことができません。アプリケーションに多くのサイズのアイコンを持たせるにはどうすればよいですか?
ありがとう
delphi - Delphi の一般的な制約の問題
tiOPF (delphi @ www.tiopf.com のオブジェクト永続性フレームワーク) で使用する汎用リスト クラスを作成しようとしています。具体的には、既存のジェネリック クラス (TtiObjectList) を取得して、TtiObject の子孫を使用するジェネリック バージョンを作成しようとしています。
D7 - D2009 および Free Pascal でコンパイルする必要があるため、基本クラスを変更する範囲は限られています。既存の永続化メカニズムを機能させ続けるには、TtiObjectList から派生する必要があります。
私のクラスは次のように定義されています。
私が抱えている問題は、デルファイが T を TtiObject の子孫として認識していないことです。次のようなことをすると、無効な型キャスト エラーが発生します。
型キャストを行わないと、上記のリストに示されているように、代わりにオーバーロード エラーが発生します。
私が間違っているアイデアはありますか?
ショーン