и через календарь имеем часы и минуты. А всё же нужно ещё дни.
Через календарь невозможно вывести значения времени, без привязки к году и месяцу. Он не предназначен для вывода времени таймеров (счетчиков секунд/миллисекунд). Это самый обычный Календарь, а не секундомер.
Если Вам нужно отобразить таймер наработки на мнемосхеме, то просто разместите на мнемосхеме компонент Текст, привяжите его к переменной Time (0..4294967295) и на событие OnDataChange назначьте следующий скрипт:
var
v: Int64;
days, hours, minutes, seconds, msc: Integer;
function AddZeros(AValue, ALen: Integer): string;
begin
Result := IntToStr(AValue);
while Length(Result) < aLen do
Result := '0' + Result;
end;
begin
if Sender is TM_Text then
with Sender as TM_Text do
begin
v := AsInt64;
days := v div 86400000;
hours := (v div 3600000) mod 24;
minutes := (v div 60000) mod 60;
seconds := (v div 1000) mod 60;
msc := v mod 1000;
Text := AddZeros(days, 2) + ' дней ' + AddZeros(hours, 2) + ':' + AddZeros(minutes, 2) + ':' + AddZeros(seconds, 2) + '.' + AddZeros(msc, 3);
end
end.
Это универсальный скрипт, его можно назначить множеству компонентов Текст и в них будет отображаться время в формате 00 дней 00:00:00.000 взятое из связанной переменной.
Товарищи разработчики, сжальтесь, нужна нативная поддержка типа TOD.
Wildrover, если Вам также нужно
только отобразить значение времени наработки из переменной TOD на мнемосхеме, то нет необходимости делать отдельные переменные TDateTime, Вы также можете использовать всего один универсальный скрипт и любое количество компонентов Текст, как описано выше. TOD - это обычная LongWord переменная, отобразить её значение в скаде, при необходимости, можно как угодно.