Войти

Показать полную графическую версию : Delphi


Marina Chernova
18-01-2004, 17:41
На form1 расположены следующие компоненты:
button1
edit1
image1 ( он невидим - visible:=false; )
timer1

При нажатии на button1 должны происходить следующие события:

1) image1 становится видимым (image1.visible:=true, это понятно);

2) в edit1 появляется цифра "5" и начинается отсчёт до "1", т.е. через каждую секунду цифры в edit1 должны сменяться по очереди от "5" до "1", а после "1" этот процесс останавливается и image1 снова становится невидимым.


Как закодировать 2)-й пункт ?

Prisoner
18-01-2004, 18:11
Имеем:

Procedure TForm1.Button1Click(Sender: TObject);
Begin
   Timer1.Enabled:=True;
   Edit1.Text := '5';
   Image1.Visible : = True;
End;

Procedure TForm1.Timer1Timer(Sender: TObject);
Var
   iSecondsCnt: Integer;
Begin
   iSecondsCnt := StrToInt(Edit1.Text);
   Dec(iSecondsCnt);
   If iSecondsCnt<1 Then
      Begin
           Image1.Visible := False;
           Timer1.Enabled := False;
           Edit1.Text := '';
      End
   Else
      Edit1.Text := IntToStr(iSecondsCnt);
End;


Исправлено: Prisoner, 18:12 18-01-2004

Marina Chernova
19-01-2004, 19:59
Извините, там ошибка....
Если приложение открыть и мгновенно не запустить, то через 2 секунды выдаётся сообщение:


-------------------------------------
Project1 * * * * * * * * * * * * * * x
-------------------------------------

' ' is not a valid integer value.

-------------------------------------

Как исправляются такие ошибки?

shurikan
20-01-2004, 02:31
Marina Chernova
При проектировании формы надо зайти в окно свойств компонента Timer1 и изменить его свойство Enabled на false, а в свойство Interval записать значение 1000. :)




© OSzone.net 2001-2012