Bonjour,
Deux petites questions pour ce début de semaine...
Sur une appli, j'ai un DBGrid qui m'affiche le résultat d'une requête (TDataSource sur un TQuery en base Fox Pro). Sur les lignes de ce tableau, j'effectue un traitement à partir des différents champs de la requête : récupération des valeurs, mise en forme et appel d'une fonction. Etant donné que le traitement (appel de la fonction) est relativement long, j'affiche une fenêtre avec une barre de progression et un bouton "arrêter" qui permet d'interrompre le traitement à la suite d'un enregistrement. Tout fonctionne bien sauf que lorsque j'affiche ma fenêtre de progression, mon curseur a la forme du sablier avec SQL dessous (crSQLWait) et qu'il m'est impossible de cliquer sur le bouton "Arreter" ! Ce qui est réellement étonnant, c'est que la fonction appelée n'effectue pas du tout de requête SQL et que même si je ne l'appelle pas mais que je fais juste un sleep(1000) par exemple, le curseur ne change pas de forme et qu'il m'est toujours impossible de cliquer sur le bouton !
Bref je pense que je dois faire quelque chose de pas correct quelque part ou que j'oublie quelque chose sur mes composants Base de Données. J'ai essayé de fermer mes requêtes, de faire des DisableControls,... mais même résultat... Alors si vous connaissez le problème, n'hésitez pas !
Autre question, sur mon DBGrid : comment peut-on simplement faire un tri sur les colonnes ? On trouve souvent dans des applis des tableaux ou en cliquant sur la colonne on modifie le tri (ascendant/descendant), avec même une petite flèche sur le titre. Faut-il récupérer un autre composant plus complet que le DBGrid ? Autrement, il y a bien l'événement "OnTitleClick" mais comment gérer ensuite le tri à part modifier la requête et la clause "ORDER BY" ? Dans le genre le "Filter/Filtered". (ceci sur un TQuery).
Voila, merci bien pour les infos et bon début de semaine !