Gestion de programmation de date (Tmonthcalender)

- 12 juin 2018 à 12:08 - Dernière réponse :  Benito
- 15 juin 2018 à 16:20
Bonjour à tous,

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?


Merci de m'aider.
Afficher la suite 

Votre réponse

2 réponses

Messages postés
423
Date d'inscription
samedi 17 mai 2003
Dernière intervention
4 août 2018
- Modifié par japee le 13/06/2018 à 20:36
0
Merci
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.

Une discussion ici pour un problème similaire :
https://codes-sources.commentcamarche.net/forum/affich-1222027-monthcalendar-ou-autre-chose

Cordialement.

Commenter la réponse de korgis
0
Merci
Merci beaucoup pour le coup de main
Commenter la réponse de Benito

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.