Показать сообщение отдельно
  #10  
Старый 05.04.2009, 17:59
Nyctos Kasignete Nyctos Kasignete вне форума
Активный
 
Регистрация: 29.03.2009
Сообщения: 300
Репутация: 94
По умолчанию

Цитата:
Сообщение от "Hatchet" Harry
каким способом можно получить текущее системное время, переведённое в 24-часовой формат
Есть функция DateTimeToSystemTime. Можно так:
Код:
var
  dt: TSystemTime;
begin
  DateTimeToSystemTime(Now, dt);
  Label1.Caption := 'Hour: ' + IntToStr(dt.wHour);
  Label2.Caption := 'Minute: ' + IntToStr(dt.wMinute);
  Label3.Caption := 'Second: ' + IntToStr(dt.wSecond);
end;

Цитата:
Сообщение от "Hatchet" Harry
как сделать чтобы время работы таймера на капче лейбла выводилось выше 24-часов
Для этого можно использовать функцию HoursBetween из модуля DateUtils, передавая ей в качестве параметров дату и время старта таймера и результат функции Now.
Код:
Label1.Caption := IntToStr(HoursBetween(StartDateTime, Now));

_____________

P.S. Кстати, если посмотреть исходный код функции Now, то можно увидеть, что под Windows вызывается API-шная функция GetLocalTime, заполняющая структуру SYSTEMTIME с полями wHour, wMinute, wSecond и т.д. Так что если программа для Windows, то можно использовать прямо эту функцию, не пользуясь функцией Now:
Код:
var
  sysTime: _SYSTEMTIME;
begin
  GetLocalTime(sysTime);
  Label2.Caption := 'Hour: ' + IntToStr(sysTime.wHour);
  Label3.Caption := 'Minute: ' + IntToStr(sysTime.wMinute);
  Label4.Caption := 'Second: ' + IntToStr(sysTime.wSecond);
end;
Ответить с цитированием