私が直面している問題は、全くプログラミングが理解できないように感じました。私はTDictionary
のオブジェクトを持っていて、それはTDate => TEvent (custom class)
のペアから成っています。オブジェクトは、2つの別々のアプリケーションによって共有されるクラスで使用されます(通信しません)。あるアプリケーションでは、次のコードが正しく動作します。キーが存在していてもTDictionary.ContainsKeyがfalseを返す
// Get recipes from the very event.
Tmp := FCalendar.ContainsKey(D);
if (Tmp) then
begin
E := FCalendar[D];
CopyRecipes(E);
end;
一方、同じコードは他のアプリケーションでは機能しません。そんなことがあるものか?私は、デバッガで何が起こっているかのスクリーンショットを添付している:
あなたが見ることができるように、キーが辞書に存在し、まだContainsKey()
リターンFALSE
。
この原因は何ですか?
よろしく、 Patryk。 Dでの可能性
1つのアプリケーションで動作し、他のアプリケーションでは動作しないことをどのように説明できますか? – Pateman
'D'と' Key'キャストを 'TDateTime'と見てみましょう。そのコメントの質問に関しては、あなたは少しだけ質問していますか? –
確かに、私は犯行を意味しませんでした。あなたは正しい、そうだった。 'DateOf()'を使うと問題は解決します。ありがとう、デイビッド! – Pateman