Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 27.11.2012, 19:46
aqula aqula вне форума
Новичок
 
Регистрация: 19.10.2012
Сообщения: 95
Репутация: 10
По умолчанию Инициализация переменных

Ребят у меня сегодня вообще ламерский вопрос.
Пишу счетчик времени работы в программе.
Написал вот такой код
Код:
procedure TForm1.Timer1Timer(Sender: TObject);
var
h,m,s:integer;
hh,mm,ss:string;
begin
    try

        inc(s);

        if s=60 then begin inc(m); s:=0; end;
        if m=60 then begin inc(h); m:=0; end;
        if s<10 then ss:='0'+inttostr(s) else ss:=inttostr(s);
        if m<10 then mm:='0'+inttostr(m) else mm:=inttostr(m);
        if h<10 then hh:='0'+inttostr(h) else hh:=inttostr(h);
        Label1.Caption := hh+':'+mm+':'+ss//DateTimetoStr(Now);
     except
       on E:Exception do begin
         Timer1.Enabled := False;
         ShowMessage(E.Message);
       end;
    end;
end;
Но не могу инициализировать переменные s, m, h на 0
Изначально почему то берутся какие то большие числа. Как это делается?
Ответить с цитированием
  #2  
Старый 27.11.2012, 20:02
Аватар для YVitaliy
YVitaliy YVitaliy вне форума
Местный
 
Регистрация: 14.12.2011
Сообщения: 481
Версия Delphi: Borland Delphi7
Репутация: 17
По умолчанию

На старте программы. В OnCreate формы.
Если делать немного проще, можно в таймере считать секунды, а потом переводить в минуты, часы.

Код:
h:=t div 3600;
m:=(t mod 3600) div 60;
s:=(t mod 3600) mod 60;
Ответить с цитированием
  #3  
Старый 27.11.2012, 21:41
aqula aqula вне форума
Новичок
 
Регистрация: 19.10.2012
Сообщения: 95
Репутация: 10
По умолчанию

Спасибо.
А что в t?
Ответить с цитированием
  #4  
Старый 28.11.2012, 13:12
icWasya icWasya вне форума
Местный
 
Регистрация: 09.11.2010
Сообщения: 499
Репутация: 10
По умолчанию

Как - нибудь так
Код:
TForm1=Class(TForm)
....
   private
      T :Integer;
...
implementation


procedure TForm1.Button1Click(Sender:TObject)
begin
   T := StrToInt(Edit1.Text);
   Timer1.Enabled:=True;
end;

procedure TForm1.Timer1Timer(Sender:TObject);
var
  varh,m,s:integer; 
begin
  Dec(T);
  h:=t div 3600; 
  m:=(t mod 3600) div 60; 
  s:=(t mod 3600) mod 60;
  Label1.Caption := Format('%.2d:%.2d:%.2d',[h,m,s]);
  if (T<=0) then begin 
     Timer1.Enabled:=False;
     // тут вставить код, который делает что-нибудь полезное
  end;
end;
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 15:30.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter