Je suis sur une application de Gestion de cantine scolaire et j'utilise Delphi 7.
Pour gerer la programmation des dates de souscriptions à la cantine par u n élève,
je voudrais utiliser le composant TMonthcalender.
Mes difficultés sont les suivantes:
1- Comment faire une selection multiple et/ou avec des plages de date contigue?
2- Comment recupérer plusieurs date selectionnés pour un seul élève et les envoyers dans la base?
3- Y a-t-il autre commposant plus adapté qui pourra m'aider à faire ce travail?
korgis
Messages postés420Date d'inscriptionsamedi 17 mai 2003StatutMembreDernière intervention 6 mai 201917 Modifié le 13 juin 2018 à 20:36
Salut,
Pour pouvoir sélectionner plusieurs date contiguës dans le TMonthCalendar, il faut mettre la propriété MultiSelect à True.
Il semble qu'il soit uniquement possible de sélectionner des dates contiguës.
Tu peux stocker les dates sélectionnées dans un array, un TStrings, Memo, ListBox, etc, pour les mettre dans ta base de données.
Un exemple, sur l'évènement OnClick, dans lequel les dates sont stockées dans un array dynamique de TDate, avec visualisation dans un TMemo :
procedure TForm1.MonthCalendar1Click(Sender: TObject);
var
i: Integer;
arrDates: array of TDate;
begin
SetLength(arrDates, Trunc(MonthCalendar1.EndDate) - Trunc(MonthCalendar1.Date) + 1);
// récupération des dates comprises dans la sélection :
for i := 0 to Length(arrDates) - 1 do
arrDates[i] := MonthCalendar1.Date + i;
// visualisation du tableau dans un TMemo :
Memo1.Clear;
for i := 0 to Length(arrDates) - 1 do
Memo1.Lines.Add(DateToStr(arrDates[i]));
end;
Tu peux aussi utiliser le TCalendar dans l'onglet Exemples, mais je n'y vois pas d'avantage particulier.