Delphi: Annulation d'un TDataSet.Post dans un événement OnBeforePost
Sur notre principale écran de saisie des données, nous avons un OK/Annuler dans la boîte de dialogue OnBeforePost événement.
- OK laisse les choses suivre leur cours
- Annuler droit fait maintenant une
Dataset.Cancel;
Qui fait ce qu'il est censé, l'annulation des modifications et met le jeu de données en mode de navigation.
C'est très bien pour la plupart des clients, mais il nous a été demandé si il peut être modifié à
- AnnulerAbandon de Poste et de rester en mode edit avec les changements en cours gardé.
Si ils veulent annuler, ils peuvent utiliser le bouton annuler.
Regardant le source pour procedure TDataSet.Post;
il ne semble pas possible d'utiliser l'événement de cette façon.
Dose de n'importe qui ont des idées sur la façon de ce qui pourrait être fait?
Suivi: c'est la façon dont j'ai choisi de le gérer maintenant
case MessageDlg('Save Changes?', mtWarning, [mbYes, mbNo, mbAbort], 0) of
mrYes: ;
mrNo: Dataset.Cancel;
mrAbort: Abort;
mrNone: Abort;
end;
source d'informationauteur Christopher Chase
Vous devez vous connecter pour publier un commentaire.
L'appel de la méthode
Abort
(à partir de l'unitéSystem
si je me souviens bien) soulève un silencieuxEAbort
exception, qui annule simplement le mode de fonctionnement actuel. Cela devrait fonctionner.(Btw: cette méthode d'annulation d'un databaset opération est également décrite quelque part profondément dans le système d'aide comme "normal", façon d'atteindre cet objectif --- c'est là où j'ai obtenu cette technique à partir de l'origine).