Navigation de mois en mois et d'année en année
Remonter à Personnalisation d'une grille - Index
Les propriétés sont particulièrement utiles pour manipuler les composants, en particulier lors de la conception. Mais lorsque des manipulations fréquentes ou instinctives font intervenir plusieurs propriétés, il paraît judicieux de fournir des méthodes pour les gérer. Le passage au "mois suivant" dans notre calendrier est un exemple de ce type. Le bouclage sur les douze mois avec l'incrémentation de l'année est à la fois une caractéristique simple et commode pour le programmeur qui utilise le composant.
Le seul inconvénient à l'encapsulation des manipulations les plus fréquentes sous la forme de méthodes est le suivant : les méthodes ne sont accessibles qu'à l'exécution. Néanmoins, de telles manipulations ne sont fastidieuses que lorsqu'elles sont souvent répétées, ce qui est rarement le cas au moment de la conception.
S'agissant du calendrier, ajoutez les quatre méthodes suivantes pour gérer le passage de mois en mois et d'année en année. Chacune de ces méthodes utilise la fonction IncMonth de façon légèrement différente pour incrémenter ou décrémenter CalendarDate de mois en mois ou d'année en année.
procedure TCalendar.NextMonth; begin CalendarDate := IncMonth(CalendarDate, 1); end; procedure TCalendar.PrevMonth; begin CalendarDate := IncMonth(CalendarDate, -1); end; procedure TCalendar.NextYear; begin CalendarDate := IncMonth(CalendarDate, 12); end; procedure TCalendar.PrevYear; begin CalendarDate := DecodeDate(IncMonth(CalendarDate, -12); end;
void __fastcall TSampleCalendar::NextMonth() { CalendarDate = IncMonth(CalendarDate, 1); } void __fastcall TSampleCalendar::PrevMonth() { CalendarDate = IncMonth(CalendarDate, -1); } void __fastcall TSampleCalendar::NextYear() { CalendarDate = IncMonth(CalendarDate, 12); } void __fastcall TSampleCalendar::PrevYear() { CalendarDate = IncMonth(CalendarDate, -12); }
N'oubliez pas d'ajouter les déclarations des nouvelles méthodes à la déclaration de la classe.
Désormais, si vous créez une application qui utilise le composant calendrier, vous pourrez facilement implémenter le passage de mois en mois ou d'année en année.
Voir aussi