Falls du ein kompletter Neuling bist, dürfte die vorige Erklärung nicht allzu verständlich sein:
Eine
API ist eine Schnittstelle.. Du kannst sie einfach als eine Funktion sehen, die von einem bestimmten System (in dem Fall Betriebssystem) bereitgestellt wird
Platformunabhängig:
Jedes System ist eigenartig - das Ausführen von Programmen in System A kann sich von System B unterscheiden (und das ist eig. meist immer der Fall bei APIs).
ShellExecute ist eine Windows
API (funktioniert nur unter "Windows"). Lazarus setzt aber auf platformunabhängige Lösung - sie verwendet kein ShellExecute.
Ich weiß nicht, wie die äquivalenten APIs für andere Systeme heißen, aber die müsstest du verwenden, falls du für ein spezielles System entwickelst.
Ich glaub, dass es bei Lazarus so ist, dass da einfach eine Schicht drüber gepackt wird - apiA (System A), apiB (System B), apiC (System C), ..
es wird eine eigene Funktion geschrieben, nennen wirs es X, die dann zur Compilezeit rausfindet, auf welchem bzw. für welches System kompiliert wird und dann die richtige
api drinnen ausführt (also entweder apiA oder apiB oder ..)
Du rufst dann im Grunde nur X auf. Lazarus kümmert sich um den Rest!
<Edit>
Recherchiere, was nun X in diesem Fall ist
</Edit>
Sollte verständlicher sein xD