Bonjour à tous,
Est-ce qu'il existe un moyen d'annuler un click sur un radiobutton pour revenir à l'état précédent ? ou alors existe-t-il un moyen de connaître quel radiobutton était checké avant le click sur un autre?
Je m'explique, J'ai 5 radiobuttons qui sont groupés et lorsque je clique sur l'un d'eux, je demande une confirmation de modification (Voulez-vous continuer?)
Donc si la confirmation est refusée, le click ne doit pas être effectué et le radiobutton qui était checké jusque là doit le rester alors que si la confirmation est acceptée, le radiobutton sur lequel on a clické doit se cocher. (j'espère que vous comprenez mon charabia)
Bien sûr, je pourrait utiliser une variable pour enregistrer l'état courant et le rétablir en cas de non confirmation. J'ai fait ce petit test qui fonctionne mais que je ne trouve pas très pratique (On a juste une petite forme avec 5 radiobuttons qui utilisent des fonctions communes pour les évènements onEnter et onClick :
Cette solution fonctionne mais elle n'est pas très élégante et pas très pratique. Existe-t-il un autre moyen?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 Var CurrentSelect : TAdvOfficeRadioButton; RetourArriere : Boolean = False; procedure TForm1.RBEnter(Sender: TObject); begin Label1.Caption:='MouseDown '+(sender as TAdvOfficeRadioButton).Name; If Rb1.Checked = True Then CurrentSelect := Rb1 Else If Rb2.Checked = True Then CurrentSelect := Rb2 Else If Rb3.Checked = True Then CurrentSelect := Rb3 Else If Rb4.Checked = True Then CurrentSelect := Rb4 Else If Rb5.Checked = True Then CurrentSelect := Rb5; Label2.Caption:='CurrentSelect '+CurrentSelect.Name; end; procedure TForm1.RBClick(Sender: TObject); begin If RetourArriere = True Then Begin RetourArriere:=False; Exit; End; If MessageDLG('Voulez-Vous continuer ?',mtConfirmation,[mbYes, mbNo],0) = mrNo Then Begin RetourArriere:=True; (sender as TAdvOfficeRadioButton).Checked:=False; CurrentSelect.Checked:=True; End; end;
Merci d'avance
Partager