Yo haria una pequeña modificación a tu código:
Código Delphi
[-]if PasswordDlg.Tag = 3 then
ShowMessage('Tres intentos erroneos.');
Close; end;
Se supone que se debe cerrar cuando lleve tres intentos, por eso el close debe ir dentro del if, sino se cierra al primer fallo y saca el mensage al 3º (que no saldria nunca)