問題タブ [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.

0 投票する
3 に答える
1143 参照

delphi - TTreeViewの親が変更された後、TTreeViewノードハンドルが解放されましたか?

私は非常に興味深い問題を抱えています。

バックグラウンド

私は何年も TTreeView を使用してきましたが、ドッキング ライブラリ (AutomatedQA から) と共に使用するようになったのは今だけです。TTreeView の親が変更されると、すべてのハンドルが再作成されることを学びました。これは、通常のアクティビティ中にドッキング ライブラリが行うことです。

オブジェクトを保持するために TTreeNode の Data プロパティを使用しています。オブジェクト内の TreeNode へのリンクも保持しています。つまり、TreeNode を使用してオブジェクトを取得でき、オブジェクトから TreeNode を取得することもできます。

ツリー ビューの親が変更されていない限り (ウィンドウの自動非表示と表示)、私のアプリケーションは完全に機能します。

問題

私が見つけたのは、親が変更されると、ツリー ノードの Data プロパティにアタッチされたオブジェクトに、間違ったツリー ノードまたは古いポインターへの参照が含まれるようになったことです。

別の方法で「MyTreeViewContainer.Parent:=SomewhereElse」を試してみたところ、同じ問題が発生しました。

おそらく何百ものオブジェクトでツリーをリロードするのはあまり効率的ではありません。

この問題を回避する方法がわかりません。私は長い間ツリービューをロードすることができ、オブジェクトはお互いを簡単に見つけることができました. これは、ツリービューを使用するための私の素敵な「パターン」を本当に壊す可能性があります...

ご協力ありがとうございました!

0 投票する
5 に答える
4287 参照

delphi - 一部の配列は公開でき、他の配列は公開できないのはなぜですか?

何が起きてる?静的配列では、「公開されたプロパティ 'staticArray' は ARRAY 型にすることはできません」というエラーが表示されますが、動的配列は問題ありませんか? よくわかりません。この背後にある理由を知っている人はいますか?どうすれば回避できますか? (いいえ、すべての静的配列を動的として再宣言したくありません。理由により、それらはサイズです。)

0 投票する
1 に答える
1462 参照

delphi - D2009 の CompareText 実装の高速化

私は自分のプログラムでハッシュ マップ データ構造を広く使用しています。Codegear フォーラムに投稿された Barry Kelly によるハッシュ マップの実装を使用しています。その実装は、RTL の CompareText 関数を内部的に使用します。プロファイリングにより、SysUtils CompareText 関数に多くの時間が費やされていることがわかりました。

私は見ていた

ファストコード サイト

そして、CompareText のより高速な実装を見つけました。残念ながら、D2009 とその Unicode 文字列では機能しないようです。

ここで質問があります: D2009 文字列をサポートする同様のより高速なバージョンはありますか? CompareText 関数は、ハッシュ マップを使用するときに (少なくとも私が現在使用している実装では) 頻繁に呼び出されるように思われるため、パフォーマンスを少し改善するだけで実際に違いが生じる可能性があります。それとも、そこに示されている実装はユニコード文字列でも機能するはずですか?

0 投票する
2 に答える
1645 参照

delphi - Delphi2009とコピーメモリ

Delphi 2009でDelphiModbusライブラリをテストしていますが、希望する結果が得られません。問題はIdModbusClient.pasの次の行にあると思います。

ReceiveBufferがごみに設定されているようです。

バッファはTIdBytesとして定義されます(Indyコンポーネントから)

ReceiveBufferはTCommsBufferとして定義されています:

もちろん、iSizeはバッファのサイズ(バイト単位)です。

これはUnicode変換と関係があるのだろうか?

0 投票する
3 に答える
1642 参照

delphi - Delphi 2009 で文字列をディスクに保存する

ディスクから保存してロードする必要がある以下のような構造があります。

これまで、構造を保存するために次のようなものを使用してきました。

上記のコードは Delphi 7 で動作しました。D2009 では、短い文字列と Unicode 文字列の間で割り当てを行うと、多くの警告メッセージが表示されました。今まで、コンパイラの警告やヒントなしで Delphi コードを書くことができました。したがって、警告を受けずに文字列をディスクに保存するエレガントな方法が必要です (Unicode は優れていますが、重要ではありません)。

0 投票する
2 に答える
2064 参照

delphi - httpプロキシを介してTTcpClientに接続します

delphiのhttpプロキシサーバーを介してサーバーに接続するにはどうすればよいですか?SOCKS5プロキシはどうですか?

Googleには何の提案もありません!

0 投票する
7 に答える
29372 参照

delphi - Delphi2009でPDFファイルを表示するための最良の方法は何ですか

Delphi 2009アプリケーションでPDFファイルを表示するには、どのコンポーネントを使用する必要がありますか?

編集:

SynactisのPDFViewerを使用しています 。これは非常に優れた無料のPDFViewerですが、Delphi2009はサポートされていません。

だから私はそれを製品から設計する必要があります

0 投票する
2 に答える
1542 参照

delphi - D2009 の D7 で動作するコンポーネントをインストールできない

D7 で完璧に動作するコンポーネントがたくさんあります。それらを Delphi 2009 IDE にドラッグすることで、なんとかコンパイルしてインストールすることができました。しかし、プロジェクトでこれらのコンポーネントを使用しようとすると、コンパイラはそれらのソース コードが見つからないと言います。そのライブラリへのパスはどこに入力できますか?


解決:

古い DPK ファイルを Delphi 2009 にドラッグ アンド ドロップしました。次に、プロジェクト マネージャで [ビルド] を選択し、次に [インストール] を選択しました。コントロールを使用するアプリケーションがそのソースを認識できないことを除いて、すべてがスムーズに機能しました。Tool-Options-Library Win32 にパスを追加することで問題が解決しました。

皆さん、特にモハメッドに感謝します。

0 投票する
2 に答える
1428 参照

delphi - リボン制御のバグ?(vistaでカットオフが発生します)

リボン バーとステータス バーのみを含む単純なフォームを使用すると、それが途切れることがわかりました。ステータス バーの上に表示されるコントロールは、後で削除されました。たまたまコントロールが存在していても、同じカットオフが発生します。後でステータスバーを削除し、代わりにメモコントロールを配置して同じ結果を得ました。

リボンバーなし: (ソース: xrw.bc.ca )リボンバーなし

リボンバー付き: (ソース: xrw.bc.ca )リボンバー付き

エッジから 2、4、および 8 ピクセルの描画でこれを説明しました。

最大化されていない
(ソース: xrw.bc.ca ) (ソース: xrw.bc.ca )
最大化された

Chris Lively が以下で述べているように、明らかにサイズの計算ミスがありました。どうすればこれを修正できますか?

コメントしてくださってありがとうございます!

0 投票する
3 に答える
786 参照

delphi - TDictionary - 無効なキー

次のようなコードがあります。

ランダムに、「v := myDict.Items[k];」でスローされる例外が表示されます。これは、k が無効であることを示しています。

他の誰かがこれを見ましたか?