Réponse aux modifications effectuées par le biais de la source de données

De RAD Studio
Aller à : navigation, rechercher

Remonter à Association d'un contrôle de données à un ensemble de données


Etant donné que la source de données relie le contrôle de données à son ensemble de données, elle véhicule toute la communication qui intervient entre eux deux. Généralement, le contrôle orienté données répond automatiquement aux modifications apportées dans l'ensemble de données. Toutefois, si votre interface utilisateur utilise des contrôles non orientés données, vous pouvez utiliser les événements d'un composant source de données pour fournir manuellement le même type de réponse.

L'événement OnDataChange se produit chaque fois que les données d'un enregistrement sont susceptibles d'avoir évolué, notamment lorsque le contenu des champs est modifié ou que le curseur est positionné sur un autre enregistrement. Cet événement, déclenché par toute modification, garantit que le contrôle reflète les valeurs de champ en cours dans l'ensemble de données. Généralement, un gestionnaire d'événement OnDataChange rafraîchit la valeur d'un contrôle non orienté données qui affiche des données de champ.

L'événement OnUpdateData se produit lorsque les données de l'enregistrement en cours sont sur le point d'être validées. Par exemple, un événement OnUpdateData se produit après l'appel de Post mais avant la validation effective des données dans le serveur de base de données sous-jacent ou le cache local.

L'événement OnStateChange se produit lorsque l'état de l'ensemble de données change. Lorsque cet événement est déclenché, vous pouvez examiner la propriété State de l'ensemble de données afin de déterminer son état en cours.

Par exemple, le gestionnaire d’événement OnStateChange suivant active ou désactive les boutons ou les éléments de menu en fonction de l’état en cours :

 procedure Form1.DataSource1.StateChange(Sender: TObject);
 begin
   CustTableEditBtn.Enabled := (CustTable.State = dsBrowse);
   CustTableCancelBtn.Enabled := CustTable.State in [dsInsert, dsEdit, dsSetKey];
   CustTableActivateBtn.Enabled := CustTable.State in [dsInactive];
   { ... }
 end;

Remarque : Pour plus d'informations sur les états des ensembles de données, voir Détermination des états d'un ensemble de données.

Voir aussi