Und dann noch was Anderes:
ShellExecute wird es bestimmt auch im Lazarus irgendwo geben.
Ich weiß nun nicht wie und wo du auf das ShellExecute gekommen bist, aber man kann nicht immer einfach so "Delphi"-Quellcodes 1:1 in Lazarus verwenden.
Denn nicht nur, daß es dort andere Units gibt ... die heißen manchmal anders oder es gibt sie erst garnicht oder die gwünschte Funktion steckt dort in einer anderen
Unit.
Und Nochetwas:
Was um Himmels Willen suchen diese globalen Variablen dort?
PS: Die ersten Beiden
label5.caption:=...
können weg und die letzte Zuweisung kann hinter die Schleife,
denn du läßt dem Label eh keine Zeit sich neu zu zeichnen, weswegen man eh nur die letzte Zuweisung sehen sollte.