Remonter Site Kermith Page d'accueil Les nouveautés du site kermith

Astuce n°1
Astuce n°1 Astuce n°2

Le composant TComboBox et TInifiles

Pour une petite application de base de données, j'avais besoin d'une liste enrichissable à la saisie d'un nouvel élément. Pour réaliser ce truc, j'ai utilisé un TComboBox et pour sauvegarder, un objet Tinifiles.

Enrichissement d'une liste au fur et à mesure de la saisie

Création des objets dans une fiche

Dans un premier temps, insérer dans une fiche un TComboBox avec les propriétés suivantes :

Propriétés Valeur
Name Classement
Style csDropDown
text

Création d'une procédure AjouteElement

Cette procédure servira à ajouter un élément nouveau dans la liste du TComboBox. Nous vérifions si la chaine est nouvelle avec la méthode IndexOf. Cette procédure peut être déclarée dans la section privée de la fiche

    private
      { Private declarations }
      Procedure AjouteClassement(texte:String);
      ........

      ........

      Procedure TEditArticle.AjouteClassement(texte:String);
      begin
        if texte<>'' then
          if Classement.Items.Indexof(texte)=-1 then
            Classement.Items.Add(Texte);
      end;    

Choix de l'événement pour l'insertion d'un élément

Il y a plusieurs possibilités pour le choix de l'événement. Nous pouvons utiliser l'événement OnExit du TComboxBox, l'élément nouveau sera automatiquement inséré quand nous passerons le focus à un autre focus. On pourrait utiliser l'événement OnHide ou OnClose de la fiche.

    procedure TEditArticle.ClassementExit(Sender: TObject);
    begin
      AjouteClassement (Classement.Text);
    end;    

Télécharchez l'exemple PCombo.zip (1,7 Ko)

Sauvegarde de la liste d'éléments

Nous allons nous intéresser de la sauvegarde de la liste d'éléments. Nous utiliserons un objet Tinifile. Celui-ci sauvegarde et lit un fichier INI.

Notre fichier INI, que nous appellerons LISTE.INI, comportera une section "Liste". La valeur "Nombre" contiendra le nombre d'éléments de la liste, les valeurs 1 à x les éléments de la liste. Pour ajouter un objet Tinifile, rajoutez Inifiles dans la clause Uses de la fiche et déclarez l'objet ListeIni.

  implementation

      {$R *.DFM}
      uses
        inifiles;

      Var
        ListeIni:Tinifile;    

Ensuite il suffit de créer les routines de sauvegarde et de lecture avec les événement OnCreate de la fiche et Onclick du bouton sauvegarde.

    procedure TCombo.FormCreate(Sender: TObject);
    var
      i,count:integer;

    begin
      //raz de la liste
      Classement.Clear;
      //ouverture du fichier Liste.ini
      ListeIni:=Tinifile.create('Liste.ini');
      //récupération du nombre d'éléments
      Count:=ListeIni.ReadInteger('Classement','Nombre',0);
      //Lecture des éléments de la liste
      for i:=1 to Count do
        Classement.Items.Add (ListeIni.ReadString('Classement',intToStr(i),''));
      //Libération de la mémoire
      ListeIni.Free;
    end;

    procedure TCombo.BitBtn2Click(Sender: TObject);
    var
      i,count:integer;
    
    begin
      //ouverture du fichier Liste.Ini
      ListeIni:=Tinifile.create('Liste.ini');
      //écriture du nombre d'éléments
      ListeIni.WriteInteger('Classement','Nombre',Classement.Items.Count);
      //sauvegarde de tous les éléments
      for i:=0 to Classement.Items.Count-1 do
        ListeIni.WriteString('Classement',intToStr(i+1),Classement.Items[i]);
      //libération de la mémoire
      ListeIni.Free;
    end;    

Télécharchez l'exemple PCombo1.zip (1,7 Ko)

Dernière modification : 16 février 1998

 

Remonter ]

 Pour toute question ou remarque concernant ce site Web, envoyez un email à Kermith@Club-Internet.fr
  Copyright © 1998
  Dernière modification : 16 février 1998