Wenn ParamStr 0-basiert ist (und ParamCount den 0-ten Parameter mitzählt!), ist der höchste Index ParamCount-1. Daher bekommst du beim Zugriff auf ParamStr(ParamCount) eine Zugriffsverletzung, da dieser Parameter schließlich nicht existiert
@dfried:
Genau das war ja meine Frage. Ich war mir nicht sicher, ob ParamCount eben auch ParamStr(0) mitzählt, da ich schon lange nicht mehr mit Parametern gearbeitet habe.
Aber n0b0dy meinte ja, daß es so sei, und daher war seine Aussage eben widersprüchlich.
Mit dem Wissen, daß dem aber nicht so ist, sollte also der Ausdruck tatsächlich lauten:
Delphi-Quellcode:
if (ParamCount > 0) and (FileExists(ParamStr(1))) then
ShellExecute(application.Handle, 'print', PChar('"' + ParamStr(1) + '"'), nil, nil, SW_Show);
Axel Sefranek
A programmer started to cuss, cause getting to sleep was a fuss.
As he lay there in bed, looping round in his head
was: while(!asleep()) ++sheep;