RadioButton : Check automatique en fonction d'un fichier

Résolu
cs_Toshiiro Messages postés 9 Date d'inscription mardi 28 avril 2009 Statut Membre Dernière intervention 3 mai 2009 - 28 avril 2009 à 21:04
cs_Toshiiro Messages postés 9 Date d'inscription mardi 28 avril 2009 Statut Membre Dernière intervention 3 mai 2009 - 29 avril 2009 à 11:05
Bonjours à tous & à toutes :D.
Voilà, je voudrais que les RadioButton ce check seul en fonction du contenue du fichier .ini.
Le fichier .ini est bien lu,

ini := Tinifile.Create(extractFilePath(application.exename)+'config.ini');
saved_format := ini.ReadString('configuration','compression', '');
saved_nom := ini.ReadString('configuration','filename', '');
ini.free;

saved_format & saved_nom contiennent donc le nom de deux radiobuttons différentes.
Je voudrais, que selons le nom , la radio en question ce coche. Mais je ne sais pas comment m'y prendre...




J'vous remercie d'avance =D.
(j'ai pas l'impression d'avoir été clair xD)

7 réponses

f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 37
29 avril 2009 à 02:17
La structure de ton fichier INI devrait utiliser autre chose que des strings exemples :

Integer :
-----------------------------------
[Settings]
;Format   : BMP= 0  JPG= 1  PNG= 2
Format=0
;FileName : Number= 0  DateTime= 1
FileName =0
-----------------------------------

with TIniFile.Create(ExtractFilePath(ParamStr(0))+'Config.ini') do
try

  SettingsFormat := ReadInteger('Settings', 'Format', -1);
  // ou : RadioGroupFormat.ItemIndex := SettingsFormat;   RdBtnFormatBMP.Checked : SettingsFormat 0;

  RdBtnFormatJPG.Checked :SettingsFormat 1;

  RdBtnFormatPNG.Checked :SettingsFormat 2;
  // Gestion des erreurs
  if SettingsFormat = -1 then
    MessageDlg('Format data not found in Config.ini !', mtWarning, [mbOk], 0);
  if (SettingsFormat < -1) or (SettingsFormat > 2) then
    MessageDlg('Format data out of range ('+IntToStr(SettingsFormat)+') !', mtWarning, [mbOk], 0);

  SettingsFileName := ReadInteger('Settings', 'FileName', -1);
  // ou : RadioGroupFileName.ItemIndex := SettingsFileName;   RdBtnFileNumber.Checked   : SettingsFileName 0;

  RdBtnFileDateTime.Checked :SettingsFileName 1;
  // Gestion des erreurs
  if SettingsFileName = -1 then
    MessageDlg('FileName data not found in Config.ini !', mtWarning, [mbOk], 0);
  if (SettingsFileName < -1) or (SettingsFileName > 1) then
    MessageDlg('FileName data out of range ('+IntToStr(SettingsFormat)+') !', mtWarning, [mbOk], 0);

finally
  Free;
end;

sinon avec le texte :

with TIniFile.Create(ExtractFilePath(ParamStr(0))+'Config.ini') do
try
  SavedFormat := LowerCase(ini.ReadString('Settings','Format', ''));
  SavedName   := LowerCase(ini.ReadString('Settings','FileName', ''));
  FormatBMP.Checked    :SavedFormat 'bmp';  FormatJPEG.Checked   :SavedFormat 'jpg';  FormatPNG.Cheched    :SavedFormat 'png';
  FileNumber.Checked   :SavedName 'number';  FileDateTime.Checked :SavedName 'datetime';
finally
  ini.free;
end;

<hr size="2" width="100%" />
3
cs_Toshiiro Messages postés 9 Date d'inscription mardi 28 avril 2009 Statut Membre Dernière intervention 3 mai 2009
28 avril 2009 à 21:25
Salut, merci de ta réponse.
Mais ce que j'ai vu dans ces procédures, c'est juste pour lire le fichier ini, et l'enregistrer. (ainsi que mettre à jours des Label) mais pas des radiobutton =(.
0
Bacterius Messages postés 3792 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 3 juin 2016 10
28 avril 2009 à 22:19
Bonjour,
pour savoir et définir l'état d'un radiobutton tu utilises Checked.
Après, ça dépend : dans l'exemple suivant, si 'compression' contient la valeur 'CHECKEDTRUE' dans le fichier ini, le radiobutton est coché, sinon non, et pareil pour l'autre ('filename') :

ini := Tinifile.Create(extractFilePath(application.exename)+'config.ini');
saved_format.Checked :(ini.ReadString('configuration','compression', '') 'CHECKEDTRUE');
saved_nom.Checked :(ini.ReadString('configuration','filename', '') 'CHECKEDTRUE');
ini.free;

Cordialement, Bacterius !

PS : moins de pub Nicolas ^^
0
cs_Toshiiro Messages postés 9 Date d'inscription mardi 28 avril 2009 Statut Membre Dernière intervention 3 mai 2009
28 avril 2009 à 22:24
Salut, merci de ta réponse.
Mais compression contient FormatJPEG et filename contient Dateheure.
Tout deux sont les nom de deux RadioButtons.

j'avais testé saved_nom.Checked:=True; mais il disait que 'string ne contient pas un membre nommé checked'. un truc dans le genre.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Nicolas___ Messages postés 992 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 24 avril 2013 2
28 avril 2009 à 22:58
RadioButton TCheckBox , c'est kif kif bourrico ;)

c'est un boolean , voila tout ;)

il faut donc faire un WriteBool et ReadBool si tu veux lire et relire son etat dans un fichier ini
0
cs_Toshiiro Messages postés 9 Date d'inscription mardi 28 avril 2009 Statut Membre Dernière intervention 3 mai 2009
28 avril 2009 à 23:14
Re-salut, et re-merci, mais...

"boolean ne contient pas un membre nommé checked
"

*est ptdr*
J'sais pas si vous avez bien compris ce que je veut faire enfaite
Au pire je réaxplique.
J'ai trois RadioButton dans un groupbox:
- FormatBMP
- FormatJPEG
- FormatPNG
et deux autre dans un autre groupbox :
- Fichier_nombre
- Fichier_dateheure

Par exemple, le fichier ini "filename" contient "Fichier_nombre" et le "compression" contient "FormatPNG". Je voudrais qu'il les selectionne automatiquement après lecture de l'ini.

Mais j'y arrive pas comme vous avez expliquez :/
0
cs_Toshiiro Messages postés 9 Date d'inscription mardi 28 avril 2009 Statut Membre Dernière intervention 3 mai 2009
29 avril 2009 à 11:05
Salut et merci de ta super réponse .
J'ai essayer, et les deux marche, je t'en remercie =D.

Tu m'a appris beaucoup de choses en plus .






Meerrciii \o/
0