Как установить текущее время в DateTimePicker Embarcadero? - PullRequest
0 голосов
/ 09 марта 2019

Я использую Embarcadero C ++ Builder 10.2 и элемент управления TDateTimePicker. Я пытался найти способ установить дату сборщика на сегодняшнюю дату каждый раз, когда я создаю эту форму. До сих пор у меня не получилось. Если я попробую пример, приведенный с использованием DateTime.Now, появится сообщение об ошибке "undefined symbol DateTime". Мой код в событии TForm3::FormCreate(TObject *Sender), так как эта информация мне нужна только при создании этой формы.

Когда я набираю DateTimePicker1->, появляется раскрывающееся окно со всеми доступными функциями, операторами и т. Д., Но ни одна из них, похоже, не может получить текущую дату и поместить ее в формат для элемента управления ,

Хотелось бы, чтобы кто-нибудь помог мне разобраться с этим.

1 Ответ

0 голосов
/ 09 марта 2019

В конструкторе формы (НЕ используйте событие TForm::OnCreate в C ++!), Вы можете присвоить возвращаемое значение функции System::Sysutils::Date() или System::TDateTime::CurrentDate() метод класса, в TDateTimePicker::Date свойство:

#include <System.SysUtils.hpp>

__fastcall TForm3::TForm3(TComponent *Owner)
    : TForm(Owner)
{
    DateTimePicker1->Date = System::Sysutils::Date();
    // or:
    // DateTimePicker1->Date = System::TDateTime::CurrentDate();
}

Это ясно продемонстрировано в примере DateUtils (C ++) Embarcadero, который связан с документацией TDateTimePicker.

Я не знаю, на какой пример вы ссылаетесь, но в C ++ Builder (или Delphi) нет типа DateTime, поэтому вы получаете ошибку компилятора. Вместо этого правильное имя типа - TDateTime, но Now() - это не метод класса TDateTime, а автономная функция в пространстве имен System::Sysutils:

DateTimePicker1->DateTime = System::Sysutils::Now();
...