Versuch mal die Leerzeichen am Anfang und am ende wegzulassen. Wird in Pfad.Text auch der Dateiname mit endung reingeschrieben?
shellexecute(handle,'open',pfad+dateiname,nil,nil,sw_show);
€dit: Könnte es daran leigen, dass an der 2. Stelle auch nil steht. Kenn mich damit jetzt nicht hundertprozentig aus, aber für mich sieht das so aus, als ob damit keine aktion ausgeführ twird, oder?