Zamykanie okna po czasie

0

Mam procedure

procedure TForm1.Timer1Timer(Sender: TObject);
var
s:string[3];
begin
if licznik=-20 then form2.show;
dec(licznik);
str(licznik+20,s);
form1.caption:='Okno za '+s+' s';
end;

end.

Co należy dopisać do procedury aby po 20 sekundach okno form1 się zamykało a okno form2 otworzyło.

0

eeee, wsadzić ją do Timera?

0

Ten temat to chyba w Newbie ma być. :)

var
  S  : Cardinal; //zmienna globalna

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Inc(S);  //zwieksz o 1+
    if S = 5 then begin
     Form2.Show;
    Form1.Hide;
 // Timer1.Enabled:=False;
 end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  S := 0;  //przypisanie wartosci poczatkowej
end;

A jak chcesz zrobić Splash screena to jest dużo artów o tym.
Pozdro.

0

W Form1.onCreate wpisz:

licznik:=20;

W Form1.onTimer1 wpisz:

var
s:string[3];
begin
dec(licznik);
str(licznik,s);
form1.caption:='Okno za '+s+' s';
if licznik=0 then
  begin
  form1.Hide;
  form2.Show;
  end;
end;

Poza tym, zależy która forma jest główną (czyli taką po której zamknięciu wyłącza się program), w tym wypadku jest to zapewne Form2, więc musisz w głównym programie dopisać przed Runem:

Application.ShowMainForm:=false;

i wtedy forma główna (Form2) zostanie wyświetlona dopiero po 20 sec. (Uwaga: Formą główną jest forma które jest pierwsza inicjowana (CreateForm) więc najpierw musisz zainicjować Form2, a potem Form1).

1 użytkowników online, w tym zalogowanych: 0, gości: 1