問題タブ [delphi-6]
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 - (ソートされた) TList への高速アクセス
私のプロジェクト (Delphi 6 で実行中!) には、メモリ割り当てのリスト (TMemoryAllocation) が必要です。このリストは、割り当てのサイズ (FSize) と、割り当てが使用中か解放されているか (FUsed) に関する情報も保持するオブジェクト内に保存します。 . 私はこれを基本的に GarbageCollector として使用し、メモリの割り当て/割り当て解除のアプリケーションを常に維持する方法として使用します (そして、必要な割り当て/割り当て解除がたくさんあります)。
私のプロジェクトで割り当てが必要になるたびに、リストを検索して、必要なサイズに適合する空き割り当てを見つけます。それを実現するために、単純な for ループを使用します。
アプリケーションの実行時間が長くなるほど、このリストは数千項目に増え、非常に頻繁に (1 秒あたり数回) 実行するため、速度が大幅に低下します。
このソリューションを加速する方法を見つけようとしています。割り当てのサイズで TList をソートすることを考えました。その場合、すべての呼び出しで必要な特定のサイズのリストにアクセスするためのインテリジェントな方法を使用する必要があります。これを行う簡単な方法はありますか?
私が考えていた別の方法は、2 つの TList を持つことでした。1 つは未使用の割り当て用で、もう 1 つは使用済みの割り当て用です。つまり、あるリストから TList.Items を抽出し、常に別のリストに追加する必要があります。そして、(現在は) 小さいリストを調べるには、for ループを使用する必要があります。これは正しい方法でしょうか?
他の提案も大歓迎です!
delphi - WM_QUERYENDSESSIONがIE8ActiveXコントロールで機能していません
Delphi 6で記述されたActiveXコントロールがあり、WM_QUERYENDSESSIONメッセージを処理してメッセージボックスをポップアップし、ユーザーがウィンドウをシャットダウンする前に変更を保存できるようにします。IE6 / IE7では正常に動作しますが、IE8ではActiveXコントロールがWM_QUERYENDSESSIONを受信できません。これを解決するにはどうすればよいですか?
ありがとう
windows - Delphi を使用したプロセスの仮想サイズの決定
私は Delphi プログラムを持っており、このプログラムが独自の「仮想サイズ」をログ ファイルに出力する方法を調べているので、メモリを使いすぎた時期を確認できます。Delphi コードを使用して「仮想サイズ」を決定するにはどうすればよいですか?
「仮想サイズ」とは、Process Explorerによって表示される値を意味します。この値は、通常のタスク マネージャーでは表示できません。プログラムの直接的なメモリ使用量ではなく、アドレス空間の使用量です。Win32 では、プログラムは 2 GB を超えるアドレス空間を使用できません。
PS: 私は Delphi 6 を使用していますが、他のバージョンのコード/情報も問題ないはずです。
delphi - モジュール %s には、開いている子孫またはリンクされたモジュールがあります。リロードできない
プロジェクトにアラビア語の言語を追加しています。リソース Dll を更新すると、他のすべてのフォームが継承されたベース フォームの 1 つで次のエラーが発生します。
すべてのフォームで OldCreateOrder を false に設定しようとしましたが、それでもエラーは解決しません。この種のエラーをネットで検索してみましたが、運がありません....
誰でもこのエラーについて知っていますか?? ところで、私は Delphi 6 Enterprise バージョンを使用しています。
前もって感謝します。
file - Delphi 6:作成されたファイルの日付(=ファイルの作成日)を変更するにはどうすればよいですか
私は今、Google (およびここ) で HOURS を検索しています。
そして、私は解決策を見つけることができません。
DELPHI 6で「Created Filetime」(= creation filetime) を変更したい。
「変更されたファイル時間」(「FileSetDate()」への単純な呼び出しが必要)ではなく、「最終アクセスファイル時間」でもありません。
どうすればいいですか?
delphi - 変換されたフォーム リソースでリソースのみの DLL を作成する
アラビア語に移行したい大規模なアプリケーションがあります。resourcestring キーワードでユーザーに表示する文字列を定義しました。
Delphi 6 で提供されている外部翻訳マネージャを使用していますが、このツールの使用にはあまり慣れていません。Delphi ETM のようにすべての翻訳された文字列を含むリソースのみの dll を作成し、ボタンをクリックするだけで実行時に言語を切り替えたいと考えています。
リソース文字列を Dll にリンクすることはできましたが、フォームのキャプションとヒント、およびコンポーネントのプロパティはどうでしょうか。言語によっては実行時に Dll を読み込んでいますが、Dll で使用できなかったため、フォームのプロパティが反映されていません。
正しい方向へのポインタ???
ありがとうラフルW
delphi - TChart をビットマップにエクスポートするにはどうすればよいですか?
私は Steema Software と Delphi 6 の TeeChart Pro v7.06 を使用しています。私のプロジェクトには、TChart (BottomAxis.Automatic = False) と TChartScrollBar (スクロールする) があります。TChart には、TChart の幅に収まらないシリーズがいくつかあるため、TChartScrollBar を使用します。
グラフを TBitmap にエクスポートする必要があります。そして、私が知っている TChart のすべてのメソッドは、TChart の可視部分のみをエクスポートするため、その方法がわかりません!
表示部分だけでなく、TChart 全体をエクスポートする方法はありますか?
ありがとう!
delphi - ページ ファイルでバックアップされた共有メモリ マップ ファイルを使用するためのこの Delphi 6 コードは正しいですか?
Delphi 6 アプリケーションと、メモリ マップ ファイルを共有してデータを転送する DLL があります。ソフト ページ フォールトがメモリ マップド ファイルの通常の副作用であることはわかっていますが、思ったよりも多く発生しています (タスク マネージャーの PF Delta 値が毎秒約 2000 と高い)。したがって、メモリマップファイルを作成し、それに書き込み、そこから読み取るコードの一部を投稿して、誰かが私のアプローチに欠陥があるかどうかを確認します。以下にコードの抜粋を示します。注、私は1MBの望ましいファイルサイズを使用しています:
delphi - 透明なグループ ボックス
Delphi ネイティブ コントロールのTGroupBoxを継承し、その Paint メソッドをオーバーライドして角丸四角形を描画します。
Create パラメータをオーバーライドした後の Paint メソッドは次のようになります。
私が直面している主な問題は、透明なグループ ボックスの上にラベルがほとんどないことです。フォームを開くとラベルはきれいに見えますが、テキストが変更されると、ラベルの境界四角形が表示されます。これは、透明なボックスの上に奇妙に見えます。
フォームのサイズを変更してもグループ ボックス自体が消えてしまい、フォーカスを別のアプリケーションに変更してアプリケーションを元に戻すと、グループ ボックス自体が描画されます。
描画に関して何か不足していますか? 対処する必要がある Windows メッセージはありますか???
前もってありがとうラフル
delphi - TWeBrowserナビゲーションの進行を中止するにはどうすればよいですか?
Delphi 6
ローカルのHTMLファイルを介してWebブラウザコントロール(TEmbeddedWB)をロードするコードがあります。ほとんどの場合正常に動作し、かなりの数年と数千人のユーザーがいます。
しかし、ある種のGoogle翻訳を行うスクリプトを含む特定のエンドユーザーページがあります。これにより、ページの読み込みに65秒以上の非常に長い時間がかかります。
ページを再読み込みしたり、アプリを終了したりできるように、ウェブブラウザを停止/中止/終了しようとしています。しかし、やめられないようです。停止を試し、about:blankを読み込んでみましたが、停止しないようです。
アプリは、65秒以上の非常に長い時間ReadyStateループ(ReadyState = READYSTATE_LOADING)に留まります。
誰か提案がありますか?