3

我需要创建一个 DateTime 的动态数组,但我事先不知道我必须添加多少个日期。我确实对 ArrayList 进行了实验,但它没有帮助。

那么,如何在 Delphi Prism 中创建 DateTime 的动态数组呢?

你是这样做的吗?

mydates: array of DateTime;

更新 1

我做了以下操作,编译器说这些参数没有重载 set_BoldedDates。”

  mydates:ArrayList;
  mydates := new ArrayList;
  mydates.Add(new DateTime(2012,11,23));

  DataCalendar.BoldedDates := mydates; //also I did mydates.ToArray caused error.

上面的代码仅在我将 mydates 设置如下时才有效:

const
mydates : Array[0..1] of DateTime = [new DateTime(2012,11,23), new Datetime(2012,11,13)];

谢谢,

4

1 回答 1

3

这对我来说很好,并且可以正确显示日期。(注意:对于解析错误或超出范围的日期没有错误处理!这严格设计用于显示在 Delphi Prism 中使用array of DateTimewith 。)MonthCalendar.BoldedDates

method MainForm.button2_Click(sender: System.Object; e: System.EventArgs);
var
  Dt: array of System.DateTime;
  TheSize: Int32;
begin
  TheSize := Int32.Parse(textBox1.Text);

  Dt := new System.DateTime[TheSize];
  for i: Int32 := 0 to TheSize - 1 do
    Dt[i] := new DateTime(2012, 11, i + 4);

  monthCalendar1.BoldedDates := Dt;  
end;

在文本框中输入的测试5显示此结果:

粗体日期的示例显示

于 2012-11-30T00:01:40.583 回答