In effetti utilizzando Sleep, non gira correttamente, nel senso che la form non viene visualizzata; non credo dipenda da mio errore, in quanto se tolgo Sleep la form viene visualizzata.
Mentre con il Timer, da proprio ciò che cercavo.
Ho utilizzato questo codice, non so come fermare il timer, anche se funziona lo stesso:
procedure TForm2.Timer1Timer(Sender: TObject);
begin
Self.Close;
end;
prima dello sleep prova
Application.ProcessMessages;
Prova così:
procedure TForm2.FormShow(Sender: TObject);
begin
timer1.Enabled := true;
end;
procedure TForm2.Timer1Timer(Sender: TObject);
begin
Timer1.Enabled := false;
form2.Close;
end;
Sul form2 c'è un ttimer, con l'intervallo impostato al valore che vuoi (secondi * 1000); inoltre la proprietà visible è su false. Dal form1 mostri il form2 tramite form2.show (o form2.showmodal, form2.showontop, quello che preferisci)