Simpliest solution is to use a timer procedure Tnewform2.FormShow(Sender: TObject); begin tmr1.enabled := false; tmr1.interval := 1; showmessage('not allowed to open this form'); tmr1.Enabled := True; end; procedure Tnewform2.tmr1Timer(Sender: TObject); begin tmr1.Enabled := false; close; end; Note: just make sure tmr1 is disabled during create to avoid using resources