Hallo Tom,
dein Code sieht eigentlich korrekt aus. Die Überdeckung der
Unit IdMessage mit der Variable
IdMessage ist bestimmt von dir gewollt. Die fehlende Abfrage des Funktionsrückgabewertes von
RetrieveHeader() kann bei falsch gewähltem
i dazu führen, dass
IdMessage.MsgId leer ist, aber auch das weisst du. Und dass in deinem zweiten Code-Fragment
ID und
i auf die gleiche Message zugreifen, dafür hast du bestimmt auch gesorgt. Ich weiß gar nicht, wie ich dir helfen kann...
Freundliche Grüße vom marabu