Bonjour à tous,

dans mon application delphi j'ai développé un module de gestion des comptes utilisateur. Un utilisateur se connecte avec un login et mot de passe… classique.

Mon écran de gestion des comptes comporte principalement:
- une TDBGrid qui contient tous les comptes,
- un bouton ajouter,
- un bouton modifier
- un bouton supprimer

Lorsque j'effectue une opération sur les comptes ma TDBGrid se met bien à jour.

J'enregistres ces comptes dans un fichier XML via le composant TClientDataSet.

Mon problème c'est lors de l'enregistrement du contenu de ma TDBGrid dans le ficier XML, celui ci fonctionne ne mode ajout. Je conserve une trace de tous mes comptes, ceux supprimer et modifier. Pourtant, lorsque j'ouvre mon écran, ma TDBGrid affiche que les comptes utiles?

Pourquoi mon fichier ne se met pas à jour en fonction uniquement du contenu de ma grille?

Ci-dessous, le code correspondant à l'enregistrement du fichier suite à une action d'ajout.


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 
procedure TformConnexionManagment.btnInsertUserClick(Sender: TObject);
begin
 
  formConnexionInsertUpdate := TformConnexionInsertUpdate.Create(self);
 
  with formConnexionInsertUpdate do
 
    try
      formConnexionInsertUpdate.ShowModal;
 
      if action <> 'Annuler' then
        begin
          formMain.ClientDataSetLogin.Append;
          formMain.ClientDataSetLogin.FieldByName('nom').AsString := editUserName.Text;
          formMain.ClientDataSetLogin.FieldByName('prenom').AsString := editUserFirstName.Text;
          formMain.ClientDataSetLogin.FieldByName('login').AsString := editUserLogin.Text;
          formMain.ClientDataSetLogin.FieldByName('mot_passe').AsString := CryptDeCrypt(editUserPassword.Text,1234);
          formMain.ClientDataSetLogin.FieldByName('groupe').AsString := cboxUserGroup.Text;
          formMain.ClientDataSetLogin.Post;
        end
        finally
        Free;
 
  end;
 
  formMain.ClientDataSetLogin.SaveToFile(fichier_connexion, dfXMLUTF8);
  dbgridUserList.Refresh;
 
end;
Merci d'avance pour vos réponses.

Raoudi57