-1

我正在使用 Embarcadero 的 C++Builder 10.2 和一个TDateTimePicker控件。每次创建此表单时,我一直在尝试找到一种方法将选择器的日期设置为今天的日期。到目前为止,我一直没有成功。如果我尝试使用给出的示例DateTime.Now,错误消息显示为"undefined symbol DateTime"。我的代码在TForm3::FormCreate(TObject *Sender)事件中,因为我只在创建此表单时才需要此信息。

当我输入时,DateTimePicker1->会出现一个下拉框,其中包含所有可用的功能、运算符等,但它们似乎都无法获取今天的日期并将其放入控件的格式中。

如果有人可以帮助我解决这个问题,我们将不胜感激。

4

1 回答 1

0

在表单的构造函数中(不要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();
}

这在 Embarcadero 的DateUtils (C++)示例中得到了清楚的证明,该示例链接到TDateTimePicker文档中。

我不知道您指的是哪个示例,但是DateTimeC++Builder(或 Delphi)中没有类型,这就是您收到编译器错误的原因。相反,正确的类型名称是TDateTime,但Now()不是TDateTime类的方法,而是命名空间中的独立函数System::Sysutils

DateTimePicker1->DateTime = System::Sysutils::Now();
于 2019-03-09T01:20:06.550 回答