Nochmal zum Mitschreiben: bevor Du versuchst, das Programm zu starten, schau doch mal in der Testphase mit ShowMessage nach, was eigentlich in dem String drinsteht, den Du an ShellExecute übergeben willst.
Delphi-Quellcode:
ShowMessage(MeinArray[lIndex].RealFileName); //nur zur Kontrolle
Err := ShellExecute(Form2.Handle,
'open',
Pchar(MeinArray[lIndex].RealFileName),
NIL,
NIL,
SW_SHOWNORMAL);
if Err < 33 then
Showmessage(ShellExecuteErrMessage(Err));