Stockage interne de la date
Remonter à Personnalisation d'une grille - Index
Pour stocker la date du calendrier, vous devez avoir un champ contenant la date, ainsi qu'une propriété accessible à l'exécution seulement qui fournit un accès à cette date.
L'ajout de la date interne au calendrier requiert trois étapes :
- Déclarez un champ privé pour contenir la date :
type
TSampleCalendar = class(TCustomGrid)
private
FDate: TDateTime;
.
.
.
class PACKAGE TSampleCalendar : public TCustomGrid
{
public:
__property TDateTime CalendarDate = {read=FDate, write=SetCalendarDate, nodefault};
.
.
.
};
class PACKAGE TSampleCalendar : public TCustomGrid
{
private:
TDateTime FDate;
.
.
.
};
- Initialisez le champ date dans le constructeur :
constructor TSampleCalendar.Create(AOwner: TComponent);
begin
inherited Create(AOwner); { existait déjà }
. { d'autres initialisations ici }
.
.
FDate := Date; { prendre la date active du RTL }
end;
__fastcall TSampleCalendar::TSampleCalendar(TComponent *Owner) : TCustomGrid(Owner)
{
.
.
.
FDate = FDate.CurrentDate();
}
- Déclarez une propriété à l'exécution pour accéder à la date encodée.Vous aurez besoin d'une méthode pour définir la date car sa définition entraîne la mise à jour de l'image sur l'écran du contrôle :
type
TSampleCalendar = class(TCustomGrid)
private
procedure SetCalendarDate(Value: TDateTime);
public
property CalendarDate: TDateTime read FDate write SetCalendarDate;
.
.
.
procedure TSampleCalendar.SetCalendarDate(Value: TDateTime);
begin
FDate := Value; { définir la nouvelle valeur date }
Refresh; { mettre à jour l'image à l'écran }
end;
class PACKAGE TSampleCalendar : public TCustomGrid
{
private:
void __fastcall SetCalendarDate(TDateTime Value);
.
.
.
};
void __fastcall TSampleCalendar::SetCalendarDate(TDateTime Value)
{
FDate = Value; // définit la nouvelle valeur de la date
Refresh(); // met à jour l'image sur l'écran
}