Bonjour,
C'est normal que cela ne fonctionne pas !
Lors d'un clic sur le composant
Radiogroup1 ce qui revient à modifier le champ sous jacent de votre ensemble de données
Table1, celui-ci est déjà passé en mode édition (
Table1.State = dsEdit) mais la modification n'est pas encore validée, vos instructions ne font qu'obtenir l'ancienne valeur.
D'autre part, l'évènement OnChange est également déclenché lors de l'affichage ou du parcours de l'ensemble de données.
Un code moins inadéquat (mais pas idéal) serait :
1 2 3 4 5 6 7 8 9 10
| procedure TForm1.DBRadioGroup1Change(Sender: TObject);
begin
if Table1.State = dsEdit then
begin
if DBRadioGroup1.Value = '1' then
Table1.FieldValues['Mt'] := 500
else
Table1.FieldValues['Mt'] := 1000;
end;
end; |
Attention, l'ensemble de données reste en mode édition.
Si vous appelez la procédure
Post dans le gestionnaire d'évènement, n'oubliez pas aussi de mettre à jour le champ 'choix_prix'...
Une dernière chose, étudier le comportement des DbControls serait utile...
--
Philippe.
Partager