Zumal du scheinbar über die Grenzen eines Recordsets iterierst, die Daten aber aus eine Stringlist kommen SL[i]? Dann benutz doch nur die Stringlist. Du könntest dem Menü-Item dann im Tag noch das "i" mitgeben, was deine Auswertung dann vllt. einfacher macht:
Delphi-Quellcode:
if Sender is TMenuItem then
ShowMessage(SL[TMenuItem(Sender).Tag]);
In dem Beispiel ist es jetzt nicht einfacher, aber je nachdem was du machen willst...