Insérer un enregistrement dans un ensemble de données depuis une grille avec LiveBindings

Faire un programme utilisant une table (par exemple du SQLite ou IBLite) qu'il affiche dans une grille, c'est facile en utilisant LiveBindings : il suffit de placer les composants à l'écran, les activer et faire le lien visuellement depuis le concepteur LiveBindings.

Pour les déplacements dans l'ensemble de données et le déclenchement de mises à jour il suffit d'ajouter un TBindNavigator et le rattacher de la même façon à l'ensemble de données.

A l'utilisation tout fonctionne très bien à part les insertions qui ont parfois un bug d'affichage sur les grilles alimentées par LiveBindings. En revanche ça fonctionne sur Append plutôt que Insert.

Voici un exemple de cafouillage que vous avez peut-être déjà vu dans vos projets.

Et bien j'ai une bonne nouvelle pour vous : c'est corrigé avec Delphi 10.4 Sydney !

Vous pouvez télécharger ce code source pour faire des tests si vous le désirez et en profiter pour voir comment créer une bases de données SQLite locale au démarrage du programme.

Si vous avez des projets sur lesquels vous aviez laissé ce fonctionnement et aviez de temps en temps des problèmes d'affichage, passez simplement à la nouvelle version de Delphi. Recompilez vos projets pour corriger le problème et bénéficier de ses nombreuses améliorations.

Si vous ne pouvez pas y passer, il vous faut intercepter l'opération d'insertion et forcer un "append" à la place.


A lire aussi

Les pièges de l'encodage lors de l'ouverture de fichiers textes. (21/09/2020)
Insérer un enregistrement dans un ensemble de données depuis une grille avec LiveBindings (30/05/2020)
Eviter les fuites de mémoire lors de la manipulation d'objets JSON (11/05/2020)
Pourquoi vouloir ajouter ()?: au Pascal alors qu'on a ifthen() ? (11/05/2020)
Plutôt INI ou JSON pour stocker vos paramètres ? (11/05/2020)
Quel composant utiliser pour dialoguer sur le port série de l'ordinateur ? (31/05/2019)
Utilisation de processus sous Delphi : fonctionnement de base. (30/07/2018)
Les threads et le blocage des écrans (30/07/2018)
Evitez les plantages causés par une mauvaise utilisation de la librairie System.JSON (18/04/2018)
Calculer et vérifier un checksum pour dialoguer avec l'extérieur (19/07/2017)
Télécharger simplement un fichier via Internet en tâche de fond (10/07/2017)
Calculer un MD5 sous Delphi (04/07/2017)
Passer un traitement lourd en tâche de fond sans bloquer l'écran (04/06/2017)
Ajouter des chaînes de caractères vides dans un objet JSON (19/05/2017)
Configurer le firewall de McAfee AntiVirus Plus pour utiliser l'App Tethering (28/06/2016)

Membre du programme MVP.
Membre du programme MVP