J'ai un TDictionary qui stocke un tas d'objets indexés par nom, et j'aimerais pouvoir examiner tous les objets. J'ai donc essayé ceci:Comment déclarer un énumérateur TDictionary?
var enumerator: TMyObject;
begin
for enumerator in myDictionary do
Mais cela ne serait pas compilé. « Types incompatibles: 'TMyObject' et 'TPair'
Alors je l'ai essayé un peu différemment.
var enumerator: TPair<string, TMyObject>;
Cela n'a pas compilé soit Ce message d'erreur est encore plus étrange: Types incompatibles: 'TPair' et « TPair »
donc apparemment je besoin d'une sorte de grammaire funky énumérer mon dictionnaire avec un pour .. en boucle Tout le monde sait comment déclarer correctement
EDIT:.? Fabio Gomes a donné un exemple cette fonctionne correctement, mais mon code ne compile toujours pas en utilisant sa méthode. Peut-être que c'est parce que je travaille dans une autre unité? Le dictionnaire et la classe qu'il utilise pour le côté Valeur sont tous deux définis dans une unité, et ce code est ailleurs. Est-ce que cela en fait un bug dans le compilateur? Quelqu'un peut-il vérifier cela?
EDIT 2: a trouvé le problème. http://qc.embarcadero.com/wc/qcmain.aspx?d=69461 si quelqu'un est intéressé.
Cette question est vraiment hors-sujet? – mjn
@mjn: Je l'ai fermé de cette façon car il n'y avait pas de "mon code est correct, c'est une erreur de compilation" raison proche. –