Topic: Добавить 1 час

Добрый день!
Подскажите как сделать так, чтобы при вводе времени в DataPicker1 (Kind: Time) в другом DataPicker2 (Kind: Time) прибавлялся 1 час.
Например: вводится 14:00 и по событию OnChange в этом поле в другом сразу выходит 15:00.
Очень нужно! Спасибо всем, кто захочет помочь.
P.S. Может быть и вариант, в котором вместо DitePicker будут обычные текстовые поля с маской для ввода времени.

Re: Добавить 1 час

procedure Form1_DateTimePicker1_OnChange (Sender: TObject);
begin
  Form1.DateTimePicker2.DateTime :=
  Form1.DateTimePicker1.DateTime + 1/24;
end;

Re: Добавить 1 час

Благодарю за помощь! А можно сделать также с текстовыми полями Edit1, Edit 2?

Re: Добавить 1 час

Here is another way

form1.DatePicker2.DateTime := form1.DatePicker1.DateTime + EncodeTime(1,0,0,0);

As for the Edit text.  Что касается текстового поля редактирования

form1.Edit1.text := TimeToStr(form1.DatePicker1.DateTime);
On a clear disk you can seek forever

5 (edited by Vickus 2021-08-30 08:37:15)

Re: Добавить 1 час

Спасибо за помощь!

А возможно ли вместо DataPicker все заводить в текстовом поле?
Например: в текстовом поле (Edit1) маска ввода 00\:00;_, во втором текстовом поле (Edit2) та же маска ввода 00\:00;_. При вводе в первое текстовое поле, допустим, 15:00, во втором текстовом поле прибавлялся 1 час и выходило 16:00?

Re: Добавить 1 час

Vickus wrote:

Спасибо за помощь!

А возможно ли вместо DataPicker все заводить в текстовом поле?
Например: в текстовом поле (Edit1) маска ввода 00\:00;_, во втором текстовом поле (Edit2) та же маска ввода 00\:00;_. При вводе в первое текстовое поле, допустим, 15:00, во втором текстовом поле прибавлялся 1 час и выходило 16:00?


Одной маски недостаточно будет. Маска только определяет, что находится в позиции: цифра или знак. Но у времени нужно учитывать, что минут 60, а часов - 24.


А чем вам специальный компонент ввода не угодил? У него тоже есть ввод через маску )))

Визуальное программирование: блог и телеграм-канал.

Re: Добавить 1 час

Можете подсказать как вводить в поле DataPicker через маску? И чтобы в дальнейшем в TableGrid информация выходила в формате HH:mm (без секунд и т.д.)

8 (edited by derek 2021-08-30 12:36:33)

Re: Добавить 1 час

Привет, Vickus
Вы теряете много встроенных функций, используя текстовое поле вместо datetimepicker (неправильная сортировка, дополнительное кодирование, когда час составляет 23:00 + 1 час и необходимо вернуться к 00:00, различные проблемы с форматированием).
Если причиной размышлений об использовании текстового поля и маски поля является то, как оно отображается в таблице, то, возможно, измените отображение столбца таблицы (см. Приложение) как более простой вариант.
Derek

Post's attachments

Attachment icon vickus.zip 336.93 kb, 161 downloads since 2021-08-30 

9 (edited by derek 2021-08-30 12:37:00)

Re: Добавить 1 час

Извинения
Время (datetimepicker1) в Форме 2 было неправильно отформатировано в предыдущем вложении.
Сейчас поправил.

Post's attachments

Attachment icon vickus.zip 336.94 kb, 186 downloads since 2021-08-30 

Re: Добавить 1 час

Огромное спасибо!!!