Initialisation du lien de données
Remonter à Ajout du lien de données
Un contrôle orienté données doit avoir accès à son lien de données pendant toute sa durée de vie, il doit donc construire l'objet lien de données dans son propre constructeur et le détruire avant de se détruire lui-même.
Redéfinissez les méthodes Create et Destroy du calendrier pour construire et détruire l'objet lien de données :
type
TDBCalendar = class(TSampleCalendar)
public { les constructeurs et destructeurs sont toujours publics }
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
.
.
.
end;
.
.
.
constructor TDBCalendar.Create(AOwner: TComponent);
begin
inherited Create(AOwner); { appeler toujours d'abord le constructeur hérité }
FDataLink := TFieldDataLink.Create; { construire l'objet lien de données }
FDataLink.Control := self; {informer le lien de données sur le calendrier }
FReadOnly := True; { existe déjà }
end;
destructor TDBCalendar.Destroy;
begin
FDataLink.Free; { détruire toujours d'abord les objets ayant un propriétaire... }
inherited Destroy; { ...puis appeler le destructeur hérité }
end;
class PACKAGE TDBCalendar : public TSampleCalendar
{
public:
virtual __fastcall TDBCalendar(TComponent* Owner);
__fastcall ~TDBCalendar();
};
__fastcall TDBCalendar::TDBCalendar (TComponent* Owner) : TSampleCalendar(Owner)
{
FReadOnly = true;
FDataLink = new TFieldDataLink();
FDataLink->Control = this;
}
__fastcall TDBCalendar::~TDBCalendar()
{
FDataLink->Control = NULL;
FDataLink->OnUpdateData = NULL;
delete FDataLink;
}
Vous avez maintenant un lien de données complet. Il vous reste à indiquer au contrôle les données qu'il doit lire dans le champ lié. La section suivante vous explique comment procéder.