Ok, mal die Erklärbär-Version:
Du hast S als String vorliegen. Das ist in Delphi ein eigener Datentyp, der nach bestimmten Spezifikationen aufgebaut ist. Blöderweise ist aber ShellExecute keine Funktion die Delphi mitbringt, sondern eine die von der WinAPI kommt, also vom Betriebssystem. Und diese Routine will keinen String übergeben haben sondern einen Pointer auf eine Zeichenkette, genannt PChar. Damit wir jetzt einen String umwandeln können, schreiben wir einfach PChar und dahinter in klammer das unseren Variablennamen bzw unseren String selbst. Dadurch bekommt ShellExecute nicht mehr den String sondern einen PChar, weil wir den String ja zuerst umgewandelt haben.
Also schreibst zu einfach in ShellExecute statt dem S ein PChar(S) hin und alles ist gut.
lg elundril
_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.