IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Delphi Discussion :

Sauvegarder items combobox


Sujet :

Delphi

  1. #1
    Membre confirmé
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2019
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Janvier 2019
    Messages : 219
    Par défaut Sauvegarder items combobox
    Bonjour à tous,
    Il y a déjà eu une discussion sur le sujet mais qui ne m'a pas apporté ce que j'attendais.
    J'ai une Combobox que j'utilise pour stocker des adresses de sites internet. Il y a donc 2 valeurs : le nom du site et le l'adresse du site. Pour ajouter des entrées à la Combobox pas de problèmes. Je cherche ensuite à mémoriser les données (FormClose ou Destroy) de cette Combobox pour les récupérer (FormCreate) à chaque appel de l'appli. Tout cela par un fichier INI.
    Question : l'un d'entre vous connaît-t-il le fonctionnement complet des composants JVCL cités dans la discussion, à savoir TJvFormStorage et TJvAppIniFileStorage. J'ai bien réussi à mémoriser et à rappeler 1 valeur mais pas 2.
    Ou bien y-a-t-il d'autres solutions pour mémoriser les 2 valeurs et les restituer ?
    Merci. Cordialement

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 001
    Par défaut
    TJvFormStorage c'est pour stocker la position taille d'une fenêtre pour la réouvrir comme elle était à la fermeture

    Utilise un TIniFile de base, inutile de passer par la JEDI

    Sinon TStrings.SaveToFile et LoadFromFile, c'est basique
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre confirmé
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2019
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Janvier 2019
    Messages : 219
    Par défaut
    Oui Shai vous avez raison, SaveToFile et LoadFromFile il n'y a que ça de vrai. Je vais devoir m'adapter.
    Merci à vous
    Cordialement

  4. #4
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 001
    Par défaut
    Pour te dire j'ai un truc très similaire dans un programme de Test

    un ComboBox et plusieurs TEdit

    Au démarrage, cela charge la combo :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    //------------------------------------------------------------------------------
    procedure TxxxCheckingMainForm.LoadxxxSettingsSectionFromIni();
    begin
      with TIniFile.Create(ChangeFileExt(Application.ExeName, '.ini')) do
      try
        ReadSections(cbxxxSettingsSection.Items);
      finally
        Free();
      end;
    end;
    le fichier ini contient donc plusieurs [SECTIONS]

    un Bouton ajouter un nouveau élement :

    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
    //------------------------------------------------------------------------------
    procedure TxxxCheckingMainForm.SavexxxSettingsToIni();
    var
      S: string;
    begin
      S := cbxxxxSettingsSection.Text;
      if cbxxxxSettingsSection.Items.IndexOf(S) < 0 then
        cbxxxxSettingsSection.Items.Add(S);
     
      with TIniFile.Create(ChangeFileExt(Application.ExeName, '.ini')) do
      try
        WriteString(S, 'xxx', edxxx.Text);
        WriteString(S, 'yyy', edyyy.Text);
        WriteString(S, 'Memo', StringReplace(mem.Lines.Text, sLineBreak, '\r\n', [rfReplaceAll]));
      finally
        Free();
      end;
    end;
    et le OnChange de la Combo appelle

    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
    //------------------------------------------------------------------------------
    procedure TxxxCheckingMainForm.LoadxxxSettingsFromIni();
    var
      S: string;
    begin
      S := cbxxxxSettingsSection.Text;
     
      with TIniFile.Create(ChangeFileExt(Application.ExeName, '.ini')) do
      try
        edxxx.Text := ReadString(S, 'xxx', '');
        edyyy.Text := ReadString(S, 'yyy', '');
        Memo.Lines.Text := StringReplace(ReadString(S, 'Memo', ''), '\r\n', sLineBreak, [rfReplaceAll]);
      finally
        Free();
      end;
    end;
    et le fichier ini donc

    Code ini : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    [local]
    xxx=http://localhost/
    yyy=machin
    Memo=Line1\r\nLine2\r\nLine3\r\n
     
    [dev-stable]
    xxx=https://server.truc/
    yyy=bidule
    Memo=Line1\r\nLine2\r\nLine3\r\n
     
    [dev]
    xxx=http://server.chose/
    yyy=objet
    Memo=Line1\r\nLine2\r\nLine3\r\n
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 27/02/2008, 14h21
  2. ajout item combobox
    Par cl@ndestIno dans le forum Windows
    Réponses: 1
    Dernier message: 07/02/2007, 20h15
  3. 1er item combobox bleui
    Par rober dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 11/11/2006, 02h19
  4. Sauvegarde contenus combobox
    Par TheBlackReverand dans le forum VB 6 et antérieur
    Réponses: 24
    Dernier message: 21/10/2006, 19h00
  5. conversion item combobox
    Par piscine dans le forum Bases de données
    Réponses: 6
    Dernier message: 18/11/2004, 12h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo