If you want the timeout to happen after a period of days, you need to setup a counter and store this to the registry, cfg or any file, also store the first run date. Then decrement the counter every time the program runs and the date is different to that stored.
Eventually the counter will get to zero and you can terminate the application (with a suitable warning).
Note This is a simple approach and could easily be 'hacked' I use a more complex 'two tier' version of this for my apps, a date file and a registry entry which must be in sync, its still not perfect but better.
Steve: Delphi a feersum engin indeed.