J'ai obtenu un dbGrid avec X lignes. Je souhaite mettre à jour une valeur de champ dans la deuxième ligne avec un temporisateur (par exemple, afficher un compte à rebours). Ce n'est pas un problème, mais je veux être en mesure de changer la ligne sélectionnée et continuer à mettre à jour la deuxième rangée. Lorsque la sélection change dans la grille, l'enregistrement en cours de l'ensemble de données connecté change également, ce qui pose un problème car le code de la minuterie pointe vers l'enregistrement sélectionné.Delphi - Mettre à jour le champ dans un dbGrid alors que la sélection est sur une autre ligne
Comment cela pourrait-il être résolu? Merci!
+1. @doubleu Si vous ne savez pas comment utiliser les curseurs clonés dans ce scénario, consultez http://www.codegearguru.com/video/049/CloneCursor.html C'est un bon moyen de comprendre l'utilisation du clonage. –
Salut et merci fory vos réponses. Mais j'ai quelques questions concernant ce problème ... J'ai une structure comme ceci: DataSource -> ClientDataSet et ClientDataSetClone -> DSProvider -> TQuery. Question1: Lorsque j'insère de nouveaux enregistrements, dois-je les insérer via clientDataSet (puis utiliser applyUpdates), ou dois-je utiliser le TQuery directement - ou n'est-ce pas important? Question2: Lorsque j'utilise clientDataSet pour insérer un enregistrement, ce nouvel enregistrement est toujours le dernier enregistrement dans le dbgrid. Comment pourrais-je l'insérer en haut? Merci pour votre aide et désolé pour mes questions idiotes. – doubleu
Répondre à moi-même :) Je pense que je devrais utiliser le clientDataSet pour insérer de nouveaux enregistrements. Après applyUpdates, j'appelle tquery.refresh pour incruster le contenu entre les données dans le TQuery et le ClientDataSet. Cela résout également mon deuxième problème: Lorsque j'appelle d'abord tquery.refresh puis que j'insère un nouvel enregistrement dans mon clientDataSet, c'est le premier enregistrement de la grille. Si je fais des erreurs évidentes, s'il vous plaît faites le moi savoir. Merci à vous les gars, vous et stackoverflow sont géniaux;) – doubleu