Wir wissen nicht, wie pDatei definiert ist, und wir wissen auch nicht, ob in sDatei letztlich wirklich derselbe absolute Pfad drinsteht.
Aber es geht viel einfacher, und ohne viel Klimbim drumherum:
Delphi-Quellcode:
iReturnVal:= ShellExecute(0, 'open', PChar(sDatei), nil, nil, 0);
{oder auch}
iReturnVal:= ShellExecute(0, 'open', PChar(DateiscEdit.Text), nil, nil, 0);
Das Verb kann übrigens auch einen Unterschied machen, auch 'open' statt nil (wenn auch selten).
Grüße
Dalai