【发布时间】:2012-10-09 06:25:41
【问题描述】:
我编写了一个 C++ Builder VCL Forms 应用程序,其中包含一个名为 TMonthCalendar 的 TMonthCalendar 控件。
我想将控件设置为粗体。
这是我当前的代码:
TMonthCalendar->BoldDays([1,8], MonthBoldInfo);
但是我收到以下错误:
E2193 Too few parameters in call to '_fastcall TCommonCalendar::BoldDays(unsigned int *,const int,unsigned int &)'
我可以帮忙吗?
这里是文档的链接:http://docwiki.embarcadero.com/Libraries/XE3/en/Vcl.ComCtrls.TMonthCalendar.OnGetMonthInfo
我发现我的代码和文档之间没有区别。但是我仍然遇到错误。
谢谢
更新
我正在尝试以下代码:
unsigned int arr[2] = {1,8};
TMonthCalendar->BoldDays(arr, 1, MonthBoldInfo);
但出现以下错误:
[BCC32 错误] Assessment2.cpp(361): E2357 引用初始化为“unsigned long”,需要“unsigned int”类型的左值 完整的解析器上下文 Assessment2.cpp(359): 解析: void _fastcall TformMain::TMonthCalendarGetMonthInfo(TObject *,unsigned long,unsigned long &)
和
[BCC32 错误] Assessment2.cpp(361): E2342 参数“MonthBoldInfo”中的类型不匹配(需要“unsigned int &”,得到“unsigned long”) 完整的解析器上下文 Assessment2.cpp(359): 解析: void _fastcall TformMain::TMonthCalendarGetMonthInfo(TObject *,unsigned long,unsigned long &)
更新
我想从向量中检索某个月份的所有天数,然后通过 TMonthCalendar 控件将天数设置为粗体。
这是我的代码:
vector<appointment> appointmentsOnMonth = calCalendar.getAllAppointmentsOnMonth(TMonthCalendar->Date);
if (appointmentsOnMonth.size() > 0)
{
unsigned int arr[appointmentsOnMonth.size()];
for (int i = 0; i < appointmentsOnMonth.size(); i++)
{
int dayOfAppointment = DayOf(appointmentsOnMonth[i].getAppDateTime());
arr[i] = dayOfAppointment;
}
TMonthCalendar->BoldDays(arr, 1, reinterpret_cast<unsigned int&>(MonthBoldInfo));
}
dayOfAppointment 变量工作正常,并获取应以粗体显示的天数的整数值。我正在寻求一些帮助,请将这些日子显示为粗体。
我遇到了一些与 unsigned int arr[] 和显示粗体天数有关的错误。 他们在这里:
[BCC32 错误] Assessment2.cpp(366): E2313 需要常量表达式 [BCC32 错误] Assessment2.cpp(372): E2034 无法将 'int[1]' 转换为 'unsigned int *'
我认为这是因为静态数组需要编译时常量,因此第二个代码永远不会编译。有没有办法解决这个问题?
【问题讨论】:
标签: c++ c++builder monthcalendar