Stocker le choix d'un RadioGroup en Delphi [Résolu]

Signaler
Messages postés
14
Date d'inscription
lundi 9 mai 2005
Statut
Membre
Dernière intervention
27 septembre 2007
-
Messages postés
702
Date d'inscription
vendredi 21 mars 2003
Statut
Membre
Dernière intervention
1 octobre 2009
-
Bonjour, c'est encore moi :p

Je cherche le moyen de stocker le choix d'un RadioGroup en Delphi

comme par exemple: l'utilisateur à 4 choix, il en choisit un(en cliquant sur le point) et ce qu'il a cliqué(le texte du choix(Ex:Oui)) doit être stocké dans une variable string et ensuite doit s'afficher dans un menu....tout fonctionne à part la saisie du choix et du stockage de ce dernier dans une variable...

j'espère que c'est assez clair pour vous, lol

Merci d'avance :)

18 réponses

Messages postés
14
Date d'inscription
lundi 9 mai 2005
Statut
Membre
Dernière intervention
27 septembre 2007

d'accord, je m'en doutais un peu, haha

Formno3.Memo1.Lines.Add(Salaire:'+Salaire);

Salaire étant la variable String

voici ce que j'ai

------------------------------------------------------
procedure TForm1.RadioGroup3Exit(Sender: TObject); (J'ai aussi essayé avec d'autre événements
begin
if RadioGroup3.ItemIndex= 0 then

Salaire:='de 0 à $10 000'

else if RadioGroup3.ItemIndex = 1 then


Salaire:='de $10 000 à $20 000'


else if RadioGroup3.ItemIndex = 2 then


Salaire:='de $20 000 à $50 000'


else if RadioGroup3.ItemIndex = 3 then

Salaire := '$50 000 et plus'

(j'ai essayé de plusieurs façons, mais j'ai sauvegardé avec cela)
---------------------------------------------------

j'ai aussi essayé avec Radiogroup.Items.Text, mais ça non plus ça ne fonctionne pas, la variable reste vide

est-ce c'est un peu plus clair???
Messages postés
4580
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
27
Utilises plutôt l'évènement click du radiogroup.
Réponse en code :
var
  Salaire: string;

procedure TForm1.RadioGroup3Click(Sender: TObject);
begin
with RadioGroup3 do
    Salaire :=  TRadioButton(Components[ItemIndex]).Caption;
  //pour vérification :
  Formno3.Memo1.Lines.Add(Salaire:'+Salaire);
 end ;

Comme ça, pas de If en cascade ou imbriqués mais une réponse directe !



<HR color =#008000>
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
<
Messages postés
702
Date d'inscription
vendredi 21 mars 2003
Statut
Membre
Dernière intervention
1 octobre 2009
2
Salut,



Ce serait encore plus clair si tu utilisais un Case Of !



Case RadioGroup1.ItemIndex of

0 : Salaire := 'de 0 à $10 000';

1 : Salaire := 'de $10 000 à $20 000';

2 : Salaire := 'de $20 000 à $50 000';

3 : Salaire := '$50 000 et plus';

end ;



Si tu utilises
Radiogroup.Items.Text, tu récupères tous les intitulés des RadioButton du groupe.

Utilise RadioGroup.Items[RadioGroup1.ItemIndex].



Mais vu ton problème, tu devrais regarder si la variable Salaire n'est pas déclarée plusieurs fois ...



Ken@vo
<hr size ="2" width="100%">Code, Code, Codec !


http://www.pourflorenceethussein.org/
Messages postés
702
Date d'inscription
vendredi 21 mars 2003
Statut
Membre
Dernière intervention
1 octobre 2009
2
Entièrement d'accord avec toi DelphiProg !



Je conseillais Case of par principe, plutôt que les If en cascade, mais ça, on en a déja beaucoup parlé ici !



Par contre à la place de :


  with RadioGroup3 do
    Salaire := TRadioButton(Components[ItemIndex]).Caption;



J'aurais mis :

Salaire := RadioGroup3.Items[RadioGroup3.ItemIndex];




Y a pas faute ?



Ken@vo

<hr size="2" width="100%">Code, Code, Codec !




http://www.pourflorenceethussein.org/
Messages postés
1715
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
2 décembre 2019
3
Bonjour tout le monde,



J'ai du mal à comprendre pourquoi les réponses de Kenavo et de Delphiprog ne sont pas acceptées ?

J'ai testé pour voir, des fois que , ben ça marche nickel bien entendu...

On peut même faire du Kenavo "amélioré", et là, vraiment, je chipote :

with RadioGroup3 do

Salaire := Items[ItemIndex];



Bonne journée à toutes à tous !



japee
Messages postés
1715
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
2 décembre 2019
3
C'est encore toi ? lol



Non, c'est pas trop clair...



Un bout de code serait le bienvenu, pour comprendre où est le problème...
Messages postés
4580
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
27
Arf, Kenavo, nos réponses se sont croisées.
Néanmoins, la solution que je propose me semble meilleure car :
1/ je suis sur de n'oublier aucune option dans le radiogroup
2/ les valeurs attribuées à la variable Salaire sont en totale correspondance avec ce qui est affiché sur la fiche


<HR color=#008000>
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
<
Messages postés
14
Date d'inscription
lundi 9 mai 2005
Statut
Membre
Dernière intervention
27 septembre 2007

je vous aime :)
lol

Merci
Messages postés
14
Date d'inscription
lundi 9 mai 2005
Statut
Membre
Dernière intervention
27 septembre 2007

j'y comprends rien, ça ne fonctionne toujours pas :'(
Messages postés
4580
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
27
Non, non, Kenavo, y a pas faute. C'est juste une question de style
L'un comme l'autre, c'est préférable à des "if" ou même des "case of".

Alex75000 : pourrais-tu être plus précis, "j'y comprends rien, ça ne fonctionne toujours pas :'(", ben ça ne veut pas dire grand chose.

<HR color=#008000>
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
<
Messages postés
14
Date d'inscription
lundi 9 mai 2005
Statut
Membre
Dernière intervention
27 septembre 2007

il y a rien qui apparaît, la variable est toujours vide avec ces deux façons... :(
Messages postés
14
Date d'inscription
lundi 9 mai 2005
Statut
Membre
Dernière intervention
27 septembre 2007

with RadioGroup3 do
Salaire := RadioGroup3.Item[RadioGroup3.ItemIndex];

fonctionne, c'est assez bizarre
Messages postés
52
Date d'inscription
lundi 27 janvier 2003
Statut
Membre
Dernière intervention
24 mars 2017

Normal que ça ne fonctionne pas car dans :
with RadioGroup3 do
Salaire := TRadioButton(Components[ItemIndex]).Caption;
le ItemIndex de RadioGroup3 indexe le Components.
Je pense qu'il suffit de changer la place de la ) with RadioGroup3 do
Salaire : = TRadioButton(Components)[ItemIndex].Caption;

JLB
Messages postés
4580
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
27
jihelb : tu devrais vérifier tes réponses avant de poster...


<HR color=#008000>
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
<
Messages postés
14
Date d'inscription
lundi 9 mai 2005
Statut
Membre
Dernière intervention
27 septembre 2007

entk, c'est très bizzare, ça fonctionne pour 3 variables sur 4
Messages postés
14
Date d'inscription
lundi 9 mai 2005
Statut
Membre
Dernière intervention
27 septembre 2007

dans mon programme c'est assez bizarre, ça fonctionne 3 fois sur 4
Messages postés
1715
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
2 décembre 2019
3
Tu l'as bien placé dans l'évènement OnClick du RadioGroup, ton code ?

Ca doit marcher.

Sinon ça signifie que ta variable globale Salaire est initialisée à '' (EmptyStr) ailleurs, juste après ce code.

Si tu ne trouves pas, et que ça ne fait pas 2000 lignes, tu n'as plus qu'à balancer le listing, on essaiera de te dépanner...



Bonne prog'



japee
Messages postés
702
Date d'inscription
vendredi 21 mars 2003
Statut
Membre
Dernière intervention
1 octobre 2009
2
Encore un coup du libéralisme chinoisant qui fait passer à rien les salaires inférieurs à 10 000 $



Ken@vo

<hr size="2" width="100%">Code, Code, Codec !




http://www.pourflorenceethussein.org/

[%3C/body ]