Bonjour à tous,
J'ai une série de boutons radio dans un RadioGroup nommé "RGChiffres" que je dois identifier dans une procédure. Les boutons sont identifiés par la valeur de l'index de RGChiffres afin de mettre à jour la Police d'affichage dans une série de "TPanel".
Le code me paraissait assez simple mais ça plante. Voici le source de la procédure. J'ai laissé les deux lignes du showmessage qui m'a permit de localiser l'erreur mais je ne la comprends pas.
Voici le code de la détection d'un changement de clic sur le RadioGroup:
Est-ce que vous y voyez plus clair que moi?
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 procedure TForm2.RGChiffresClick(Sender: TObject); var i,j : integer; begin for i := 0 to ComponentCount - 1 do begin showmessage(Components[i].Name+' = '+inttostr(I+1)+' eme composant'); // 1er test => OK donne Panel1 if Components[i] is TPanel then begin showmessage(TPanel(Sender).Name+' => index choix = '+inttostr(RGChiffres.ItemIndex+1));//2ème test => TPanel(Sender).Name donne TGChiffres ce qui ne devrait pas if TPanel(Sender).Name = TPanel(FindComponent('Panel'+inttostr(RGChiffres.ItemIndex+1))).Name then begin With TPanel(Sender).Font do begin Color := clYellow; Style := [fsBold]; end; end else begin For j := 0 to Maxchiffres - 1 do begin With TPanel(FindComponent('Panel'+inttostr(j))).Font do // ça plante ici (violation...) begin Color := clGray; Style := []; end; end; end; end; end;
merci
Partager