no no no. I need to fire Timer once __per each block of editings__, ie __per one holding of letter-key__. So I hold 'd' for 3 seconds, and I need to fire Timer once for these 3 seconds. But problem- it's fired TWICE.
Can't you use OnKeyDown and not Timer1.Enabled as condition?
You can't enable TTimer.enabled in OnKeyDown by checking TTimer.Enabled itself because it is triggered multiple times so you'll never know when to actually enable it (because it's also disabled again in the timer). You'll need an extra flag to indicate it's already executed before deciding you can switch the enabled.
But there is already a solution for the problem described (OnKeyUp).
So we need a new correct problem description with a proper example showing that problem.