In einem "einfachen Schleifenprogramm" kannst du innerhalb der Schleife mit
Quelltext
1:
| Application.ProcessMessages |
dafür sorgen, dass das System die Chance hat, andere Nachrichten zu bearbeiten. Das schließt auch das Beenden deines Programms mit ein.
Beim Timer legst du zuerst einen Startintervall fest (bspw. die 10sec), und wenn der Timer die Aktion ausgeführt hast, änderst du den Intervall dann auf 20sec usw. Dies dürfte der beste Weg sein und funktioniert sowohl mit der VCL-Timer-Komponente als auch mit der API-Anweisung "SetTimer" ganz gut.