2012-11-29 10 views
3

Мне нужно создать динамический массив DateTime, но я не знаю перед собой, сколько дат мне нужно будет добавить. Я экспериментировал с ArrayList, но это не помогает.Как создать динамический массив DateTime?

Итак, как вы создаете динамический массив DateTime в Delphi Prism?

Это как вы это делаете?

mydates: array of DateTime; 

UPDATE 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)]; 

T hanks,

+0

'Список даты = новый список ();' ли Дельфи нет дженерики? – LarsTech

+0

@LarsTech, Да, и это будет ArrayList в Delphi Prism или TList в Delphi, но мне нужен массив DateTime. Если я делаю 'mydates: массив DateTime', то это нарушитель вызывает ошибку. – ThN

+0

Какова предыстория, почему ArrayList не помогает? – LarsTech

ответ

3

Это отлично подходит для меня и отображает даты должным образом. (Примечания: нет обработки ошибок синтаксического анализа или из дат диапазона ошибок Это строго разработано, чтобы показать использование array of DateTime с MonthCalendar.BoldedDates в Delphi Prism.)

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 в текстовое поле показывает этот результат:

Sample display of bolded dates

+0

Ken, но я не использую календарь месяца .NET, но стороннее пользовательское управление, которое я нашел в Интернете, свойство BoldedDates в обоих элементах управления обрабатывалось одинаково. Единственная причина, по которой я не использую .NET MonthCalendar, - это то, что я не могу изменить только цвет выделенных жирным шрифтом или их цвет фона для цвета, который мне нужно установить. В любом случае ваш ответ работает так, как ожидалось. Благодарю. – ThN