DeZNiUS
Messages postés82Date d'inscriptionvendredi 1 novembre 2002StatutMembreDernière intervention24 octobre 2003
-
19 oct. 2003 à 21:28
DeZNiUS
Messages postés82Date d'inscriptionvendredi 1 novembre 2002StatutMembreDernière intervention24 octobre 2003
-
24 oct. 2003 à 15:21
Ca fait très longtemps que je suis pas venu sur ce forum.
Donc bonjour à tous.
Voila, moi je n'ai pas un problème. Mais une remarque a faire au sujet des TRadioButtons.
J'ai mis une journée a desceller un problème.. qui n'etait pas de moi, mais de Windows lui même!!! (ou de Delphi... d'ailleurs).
Je ne sais pas si vous êtes déjà au courant, mais comme je suis énervé, j'ai voulu le faire savoir pour pas que ça vous arrive...
Explication : Je faisait une boite de dialogue de Configuration avec un bouton Annuler (qui annule donc) un bouton OK et des radiobuttons.
Je voulait que tout soit reconfiguré si on clique sur Annuler (autrement dit qu'on recharge les options précédentes).
Quand on clique sur Annuler, cela fonctionne: tout redevient comme avant meme apres changement. Jusqu'a la tout va bien.
Je voulai que quand on ferme la fenetre avec la croix de windows, que ca fasses la meme action que Annuler. Donc j'ai mis un CancelBtn.Click dans le OnClose de la fiche. OKAY, jusqu'a la ca va.
Je teste, ca fonctionne... mais... le dernier RadioButton que j'ai cliqué ne change pas de position, c a d qu'il n'a pas été remis comme au début.
Les autres oui. Pourquoi? je ne sais pas. Pourtant, dans le OnShow de la fiche, j'ai mis une procedure que j'ai créé qui charge le fichier INI (la config quoi).
J'ai fait appel à cette procédure 10 FOIS pour pouvoir remettre tout à zéro quand on ferme la fenêtre. RIEN
A FAIRE!!! Le dernier bouton que je click est tjs au meme endroit ou j'ai clické alors que dans le INI il etait pas cliqué. POURQUOI!
Et bien tout simplement pour une raison que je vient de trouver apres quelques 4 Heures de recherche (et je rigole pas).
Il s'agit du FOCUS du RadioButton. Quand je click sur ANNULER, c ce bouton qui a le focus en dernier. DONC TOUT SE PASSE BIEN.
Mais si je ferme la fenetre en ayant cliqué sur un RadioButton, et bien le RadioButton garde le focus... et se fait cliquer, qui du coup change l'etat de mon RadioGroup.
...
La magie de windoze...
...
...
Et oui... c'est un truc aussi bête qui fait perdre une journée de develloppement. Merci billou, même si il n'est plus PDG de M$.
Donc pour résoudre le problème suffit de faire un set focus sur un autre controle que le radiobutton.. pitoyable.
Pourtant, sur d'autres version de delphi (j'utilise la 7 maintenant), je me souvient pas de ce problème. J'avait la 6 avant.
Donc voila...
Ceci n'est pas un message d'aide, mais ca pourrai servir a des gens.
cs_Bestiol
Messages postés833Date d'inscriptiondimanche 6 janvier 2002StatutMembreDernière intervention 3 novembre 20051 21 oct. 2003 à 18:07
Euh sans vouloir foutre ma m?*de, c'est quand même assez étrange, si j'ai bien compris le bug !
Que fais-tu (et comment) dans ta procédure quand on clique sur annuler ?!
Mais sinon je suis bien d'accord que ce genre de moment où y a un petit problème à la noix qui fait perdre des heures, c'est franchement lourd !
Alors je tiens à te dire que je compatis ! ;)
DeZNiUS
Messages postés82Date d'inscriptionvendredi 1 novembre 2002StatutMembreDernière intervention24 octobre 2003 21 oct. 2003 à 18:48
Je m'attendait pas du tout à des réponses...
Mais bon. Merci japee, mais je sais très bien me servir des fichiers ini :D
Merci qd meme. De tt facon le probleme venai pas de la... :D
Bestiol : Quand on click sur Annuler, ca execute une procédure que g écrite, je l'ai nommé LoadSettings. Elle sert à lire le fichier INI et a tout bien remettre...
Mais c t pas le probleme, le probleme c quand on click sur la croix en haut de la fenetre (case fermer, quoi) et que ca fait la meme action que Annuler. Le dernier RadioButton (et QUE ca) si il est focusé, va se faire clické qd on montre la form.
NB : A noter que ce probleme je l'ai eu avec Delphi 7 Entreprise sous WinXP Pro SP1. Les dernières versions de logiciels...
cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 201332 22 oct. 2003 à 22:14
Je trouve étrange que l'on appelle la méthode CancelClick quand on ferme une fenêtre...
Si le bouton Cancel appelle une procédure (ou une méthode), pourquoi ne pas appeler cette procédure dans l'événement OnCloseQuery de la fiche, c'est à dire juste avant la fermeture ?
Je pense que ton problème vient du fait que la file des messages n'est pas traitée à ce stade du cycle de vie de la fiche.
Si c'était un bug de Windows, ça se saurait ! ?-)
Je t'invite à réviser le cycle de vie d'une fiche.
Arrêtons d'accuser Billou de tous les maux, il y a bien longtemps qu'il ne programme plus. 8-)
May Delphi be with you
DeZNiUS
Messages postés82Date d'inscriptionvendredi 1 novembre 2002StatutMembreDernière intervention24 octobre 2003 22 oct. 2003 à 23:15
Salut Delphiprog. Ca fait longtemps ;)
Car si on click sur OK, ca ferme la fiche et ca execute aussi la procedure "Annuler" et moi je veux pas. Je veux que ca annule quand : on click sur annuler, on ferme la fiche avec la case fermer, et avec la touche ESC enfoncée. Ca valide quand : on click sur OK ET C TOUT.
Bah de toute facon, je vous est dit, à la fermeture de la fiche, je fait un CancelButton.SetFocus et ca fonctionne, j'ai plus ce bug... Bon ok c pas un bug de Windoze mais ptetre de Delphi... ou de moi ? :D
De toute facon j'ai résolu mon problème... c'etai juste un coup de gueule. :D
-[!!!]- DeZNiUS -[!!!]-
Vous n’avez pas trouvé la réponse que vous recherchez ?
DeZNiUS
Messages postés82Date d'inscriptionvendredi 1 novembre 2002StatutMembreDernière intervention24 octobre 2003 23 oct. 2003 à 22:32
Tout simplement incroyable....
Vous y croirez jamais...
Vous vous souvenez peut-être du problème que j'avais eu avec les RadioButtons...
Et bien j'ai le même problème... Seulement c'est un peu différent.
La c'est avec des élements de menus reliés au RadioButtons. Donc quand je sélectionne "Activer" dans le menu ca click sur le RadioButton correspondant.
Et bien quand je raffiche le menu, le RadioButton change d'état!!!
Seulement la j'ai enfin compris pourquoi.
Ce n'est ni ma faute.
Ni celle de Windows.
Ni celle de Delphi.
Mais de StyleXP.
Le theme que j'ai mis, il fait bugger les radiobuttons, je met le style standard, et la, ca fonctionne... Magique !