Deux questions sur DBGrid

Deux questions sur DBGrid - Delphi/Pascal - Programmation

Marsh Posté le 02-06-2003 à 11:33:10    

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 !

Reply

Marsh Posté le 02-06-2003 à 11:33:10   

Reply

Marsh Posté le 02-06-2003 à 20:49:30    

antp est en vacances ? ;)
Lui laissez pas le temps de revenir, répondez moi svp ! :)

Reply

Marsh Posté le 02-06-2003 à 22:35:49    

Poulou a écrit :

antp est en vacances ? ;)


 
j'avais pas vu le topic
 
j'ai jamais utilisé le dbgrid dont je peux pas t'aider bcp là dessus
 
Par contre pour le bouton non clicable, dans ta boucle de traitement il faut que de temps en temps tu laisser l'application réagir à ce que l'utilisateur fait.
Mets-y donc un Application.ProcessMessages, comme ça le clic sur le bouton sera pris en compte à ce moment là plutôt qu'à la fin du traitement.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed