問題タブ [tlist]

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 投票する
6 に答える
5918 参照

delphi - TObjectList からオブジェクトを抽出する

OwnsObjects = true の TObjectList があります。かなりの数のオブジェクトが含まれています。ここで、インデックス Idx のオブジェクトを解放せずに、そのリストから削除したいと考えています。

抽出方法は唯一のオプションですか?

ExtractedObject := TheList.Extract(TheList[Idx]);

他のすべてのメソッドは、オブジェクトを解放するようです。オブジェクトのインデックスを既に知っているので、毎回線形検索を行わない、もう少し効率的なものを探しています。過負荷のようなもの...

ExtractedObject := TheList.Extract(Idx);

...存在しません。

0 投票する
4 に答える
1862 参照

delphi - TList.Remove() が EAccessViolation エラーを生成するのはなぜですか?

以下のコードを実行すると EAccessViolation が発生するのはなぜですか?

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

delphi - Delphi Prism の TList の代替。

Delphi 2007 で作成されたアプリケーションを Delphi Prism に移行していますが、TList クラスを置き換えるのに最適なオプションはどれですか?

前もって感謝します。

さよなら。

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

delphi - 奇妙な EListError の発生 (変数定義のインデックスにアクセスする場合)

いくつかのオブジェクトを格納する TList があります。これで、そのリストに対していくつかの操作を行う関数ができました。

今、本当に奇妙なのは、適切なインデックスで fMgr.Windows にアクセスすると EListError が発生することです... 私はそれをデバッグしようとしましたが、関数は引数0と1で2回呼び出されます(想定どおり)。

AIndex = 0 の場合、fMgr.Windows[AIndex] を評価すると $someAddress で EListError が発生しますが、代わりに fMgr.Windws[0] を評価すると、適切な結果が返されます ...

さらに奇妙なことに、EListError があったとしても、関数は適切なデータを返します...そして何も表示しません。シャットダウン時の 2 つの EListError メモリ リークに関する情報のみ (FastMM を使用)

何が間違っているのでしょうか?

前もってありがとうミハル

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

delphi - 型付きTリストを並べ替える方法

並べ替えに問題がある型付きTリストがいくつかあります

通常、型指定されていないTListの場合、次のような関数があります。

これはリストによって呼び出されます

ただし、現在のアプリケーションでは、TListを特定のポインター型にロックすることを決定したため、上記の例では、JobListを次のように宣言します。

今私が電話するとき

「パラメータが足りません」というエラーが表示されます。

何か案は?

型なしの「標準」TListで上記のSort関数を使用すると、正しくコンパイルされることを比較しました...

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

delphi - Delphi TDictionary で、Value オブジェクトが null として挿入されます

Delphi 9 の TDictionary ジェネリック クラスを使用しています。私の TDictionary は次のようになります。

そして、次のように TDictionary を初期化します。

TList も初期化しているので、それを使用して TDictionary を設定できます。TList/TDictionary に入力するために使用するファイル データをループしています。同じ TList を再利用して、値として TDictionary に挿入しようとしています。TDictionary への最初の挿入では、項目の TList 値が存在し、その中にデータが含まれています。2 回目以降の反復では、TList 値はすべて nil です。

このすべてを参照によって行っているように思えます。TList を参照ではなく値で TDictionary に追加するにはどうすればよいですか?

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

delphi - Delphi:フレームのTListに関する問題

TScrollBox内の多数のフレーム(通常は25)で構成されるインターフェイスに問題があります。

2つの問題があり、一方が他方の結果であることを願っています...

バックグラウンド:

アプリケーションが起動すると、25個のフレームを作成します。各フレームには約 20個のコントロール。これらのコントロールには、デフォルトの情報が入力されます。次に、ユーザーはコントロールをクリックして、検索を情報のサブセットに制限し、その時点でフレームを解放して再作成できます(検索で25レコード未満が返される場合があるため)

問題:

最初の検索後にアプリケーションを終了すると、約1時間かかります。Delphiに戻るまで5秒。2回目の検索(およびフレームの破棄/再作成)の後、約1時間かかります。20秒)

フレームを1回だけ作成するようにアプリケーションを書き直すことはできましたが、何が起こっているのかを理解したいと思います。

これが私の作成ルーチンです:

そして、これが私の削除ルーチンです:

私は何が欠けていますか?

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

c# - C#コードビハインドから外部javascriptに配列(またはTList)を渡しますか?

IP アドレスのリスト (または配列) と、C# コード ビハインドからのその他の情報を、外部の .js.

また、このリストは長くなる可能性があります (1000 以上のアイテム) ..これを行う最も効率的な方法は何ですか? 小さな例を挙げていただけますか?json シリアル化を使用する必要がありますか?

0 投票する
8 に答える
4637 参照

arrays - How noticeable is the difference of performance among TList, TObjectList, and plain array, if it could be estimated?

*Summarization:

Please check the knowledgeable comments from the Delphi experts. Specifically for me, I would try to use old TList/TObjectList as David suggested, and use hard-cast and TObjectList.List property as A.Bouchez suggested. I will try TDynArray when refactoring in future.

=====================================================================

Say that I have a TAtom class as defined in the following code. There are about hundreds up to thousands of TAtom instances at run time, stored in a dynamic array for now. At run time, I need to do simple float math on TAtom.X/Y/Z of all the existing TAtom instances more than 30 times per second.

Now, I need to add the ability of adding, inserting, deleting of TAtom instances at run time. It seems that my choices are (1) request a big array; (2) stick to dynamic array and manually SetLength; (3) switch to regular TList; (4) switch to regular TObjectList.

I want to avoid (1) unless it is necessary, because I then have to change quite a lot function signatures. (2) looks not good either, because TList/TObjectList seems born for this task. However, because type-casting is needed using the regular TList/TObjectList, could some one comment on the possible performance hit? I mean, it would be best if the performance burden could be estimated before I rewrites the code. If the performance will drop noticeably, is there other technics that I could use?

Furthermore, I am wondering if there is performance difference between using TList and TObjectList?

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

delphi - TList 内の TList の削除

onDestroy イベントで Tlist 内の Tlist を解放しようとしていますが、FastMM4 でアクセス違反エラーが発生しています。これがコードスニペットです。

TSignal(SignalList.items[x]).Free; でアクセス違反エラーが発生します。ライン。SignalList 項目を解放する前に AlarmList 項目を解放すると、アクセス違反エラーが発生しますが、なぜですか?

更新: Windows XP で Delphi 7.0 を使用しています。実際の FastMM4 メッセージは次のとおりです。


FastMM は、解放されたオブジェクトで仮想メソッドを呼び出す試みを検出しました。現在の操作を中止するために、アクセス違反が発生するようになりました。

解放されたオブジェクト クラス: TList

仮想メソッド: 破棄

仮想メソッド アドレス:427CF0

割り当て番号: 80055

大量のメモリ ダンプが続きます。


この FastMM4 エラーによると、別のオブジェクト内でオブジェクトを解放すると、所有者も自動的に解放されます。それが真実ではないことはわかっていますが、間違っている場合は修正してください。