Would it be a good thing, to have a function in my program, that lets the user himself deactivate the key (on the server), so that he can then activate it again on his new computer?
Sure, it's already built into TurboActivate. Just call TurboActivate.Deactivate(). Also, the example Delphi project shows example usage.
Is this what you're looking for, or have I misunderstood you?