2012-11-29 6 views
3

J'ai besoin de créer un tableau dynamique de DateTime, mais je ne sais pas à la main combien de dates je vais devoir ajouter. J'ai expérimenté avec ArrayList, mais ça n'aide pas. Alors comment créer un tableau dynamique de DateTime dans Delphi Prism?Comment créer un tableau dynamique de DateTime?

Est-ce ainsi que vous le faites?

mydates: array of DateTime; 

MISE À JOUR 1

je l'ai fait ce qui suit et compilateur dit qu'il n'y a pas set_BoldedDates surchargées avec ces paramètres. »

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

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

Le code ci-dessus ne fonctionne que si je mets les mydates comme suit:

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

T hanks,

+0

'Liste dates = nouvelle liste ()' Est-ce que delphi pas génériques? – LarsTech

+0

@LarsTech, Oui et ce serait ArrayList dans Delphi Prism ou TList dans Delphi, mais j'ai besoin de tableau de DateTime. Si je fais 'mydates: array of DateTime', il compliera une erreur. – ThN

+0

Quelle est l'histoire sur pourquoi ArrayList n'aide pas? – LarsTech

Répondre

3

Cela fonctionne très bien pour moi, et affiche les dates correctement. (Note: il n'y a pas d'erreur de manipulation pour les erreurs d'analyse syntaxique ou de dates de gamme, il est strictement conçu pour montrer l'utilisation du array of DateTime avec MonthCalendar.BoldedDates dans 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; 

Un test entrant 5 dans la ce résultat montre textbox:

Sample display of bolded dates

+0

Ken, Bien que je n'utilise pas le calendrier mensuel .NET mais un contrôle utilisateur tiers que j'ai trouvé sur Internet, la propriété BoldedDates dans les deux contrôles est traitée de la même manière. La seule raison pour laquelle je n'utilise pas .NET MonthCalendar est parce que je ne peux pas changer juste la couleur de boldeddates ou leur couleur d'arrière-plan à la couleur que je dois placer. De toute façon, votre réponse fonctionne comme prévu. Merci. – ThN

Questions connexes