Changement état TdatasetState
Bonjour,
Je suis sous Delphi XE2 avec une base de données Firebird sous Windows. J'utilise les composants Infopower et IbObject.
Je réalise un programme. A partir de la form principale (form_A), j'appelle une fenêtre (form_B). form_B est affichée en appuyant sur le button Edit du dbnavigator (composant infopower) présent sur le form_A. Le dbnavigator est lié à un datasource qui est lié à une query (ibobject avec dataset intégré).
Les différents éléments de la form_B auront un affichage spécifique en fonction du State du dataset.
Dans l'évènement FormShow du form_B, je mets le code suivant
Code:
1 2 3 4 5 6 7 8 9
|
if Dm_ps12.qry_attributions_ps12.State = dsEdit then
begin
Self.p_display('edit');
end
else if Dm_ps12.qry_attributions_ps12.State = dsInsert then
begin
Self.p_display('new');
end; |
Le problème est que dans cet évènement (FormShow), le state du dataset est toujours en dsbrowse. Lorsque la fenêtre est finalement affichée et active, il est bien en edit. En effet, je peux modifier et valider les données. J'ai également du code sur le state du dataset sur l'évènement OnClose du Form_B et là, il est dans le bon State.
Je ne comprends pas pourquoi le state du dataset n'est pas encore en Edit sur l'évènement FormShow.
Auriez-vous une explication de ce changement "tardif" du state ?
Merci d'avance pour votre aide :)