Its been many years since I last used DelphiX so I might be right off the mark.

Where do you destroy the bullets? I can see you create them when the fire button is pressed - where do you free the memory?

When the bullet is no longer needed you need to free it. So keep track of where the bullet is and free it when
1. It hits something
2. Goes off the screen
3. Exists for more than X seconds.