Veuillez lire ceci : RadioButtons.

Signaler
Messages postés
82
Date d'inscription
vendredi 1 novembre 2002
Statut
Membre
Dernière intervention
24 octobre 2003
-
Messages postés
82
Date d'inscription
vendredi 1 novembre 2002
Statut
Membre
Dernière intervention
24 octobre 2003
-
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.

Prevoyez du café pour ce genre de journées...

Salutations, votre cher

-[!!!]- DeZNiUS -[!!!]-

9 réponses

Messages postés
833
Date d'inscription
dimanche 6 janvier 2002
Statut
Membre
Dernière intervention
3 novembre 2005
1
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 ! ;)

Bonne prog',
[mailto:bestiol@cario.fr Bestiol.]

Visitez mon site : :big)
Delphi vu par Bestiol (bientôt terminé !)
Messages postés
82
Date d'inscription
vendredi 1 novembre 2002
Statut
Membre
Dernière intervention
24 octobre 2003

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...

A bon entendeur...

-[!!!]- DeZNiUS -[!!!]-
Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
31
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
Messages postés
82
Date d'inscription
vendredi 1 novembre 2002
Statut
Membre
Dernière intervention
24 octobre 2003

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 -[!!!]-
Messages postés
82
Date d'inscription
vendredi 1 novembre 2002
Statut
Membre
Dernière intervention
24 octobre 2003

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 !

Comment j'aurai pu deviner... :( :( :(

-[!!!]- DeZNiUS -[!!!]-
Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
31
Intéressant, intéressant, effectivement... >:)
May Delphi be with you
Messages postés
82
Date d'inscription
vendredi 1 novembre 2002
Statut
Membre
Dernière intervention
24 octobre 2003

Comment j'aurai pu deviner :'-(
J'ai eu de la chance de faire ce petit menu lié au radiobutton pour découvrir ca!!!

Donc ce que je fait c que apres avoir changé l'etat du radiobutton, je fait un setfocus sur un autre control...

...vraiment n'importe quoi

-[!!!]- DeZNiUS -[!!!]-
Messages postés
833
Date d'inscription
dimanche 6 janvier 2002
Statut
Membre
Dernière intervention
3 novembre 2005
1
Si c'est effectivement une erreur venant de StyleXP, il serait peut-être bon de prévenir les développeurs qui l'ont fait ?!

Comme ça il sortira certainement une version corrigée à ce niveau là...

Bonne prog' !
[mailto:bestiol@cario.fr Bestiol.]

Visitez mon site : :big)
Delphi vu par Bestiol (enfin terminé !)
Messages postés
82
Date d'inscription
vendredi 1 novembre 2002
Statut
Membre
Dernière intervention
24 octobre 2003

Ca pourrai être une idée, oui...

-[!!!]- DeZNiUS -[!!!]-