RadioButton : Check automatique en fonction d'un fichier [Résolu]

Signaler
Messages postés
9
Date d'inscription
mardi 28 avril 2009
Statut
Membre
Dernière intervention
3 mai 2009
-
Messages postés
9
Date d'inscription
mardi 28 avril 2009
Statut
Membre
Dernière intervention
3 mai 2009
-
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

Messages postés
4200
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
13 juin 2020
30
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%" />
Messages postés
9
Date d'inscription
mardi 28 avril 2009
Statut
Membre
Dernière intervention
3 mai 2009

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 =(.
Messages postés
3793
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
3 juin 2016
8
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 ^^
Messages postés
9
Date d'inscription
mardi 28 avril 2009
Statut
Membre
Dernière intervention
3 mai 2009

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.
Messages postés
992
Date d'inscription
jeudi 2 novembre 2000
Statut
Membre
Dernière intervention
24 avril 2013
2
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
Messages postés
9
Date d'inscription
mardi 28 avril 2009
Statut
Membre
Dernière intervention
3 mai 2009

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 :/
Messages postés
9
Date d'inscription
mardi 28 avril 2009
Statut
Membre
Dernière intervention
3 mai 2009

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/