Bonjour,
Je suis entrain de faire un petit exécutable qui contient un PopupMenu. Et je voudrais charger celui-ci à partir d'un fichier INI, et créer un objet pour chaque ligne du fichier INI et lorsque je clique sur cet objet je parcours le chemin contenu dans la valeur correspondante au 'caption' de l'objet.
Je voudrais alors savoir comment récupérer les clés d'un fichier INI et les valeurs qui leurs correspondent, je m'explique :
Mettons que mon fichier INI se compose comme ceci :
PremierItem correspondrait au 'caption' de l'objet à créer, ValeurItem1 correspondrait au chemin à parcourir lorsque je clique sur PremierItem.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 [Item] PremierItem=ValeurItem1 SecondItem=ValeurItem2 [...]
Voilà ma procédure servant à créer l'objet en question :
La procédure de parcours du dossier :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 procedure AjouterUnItem(PopupMenu:TMenuItem;FichierIniACharger,Section,Cle,default:String); begin nomitem:=form5.edit1.Text; diritem:=Form5.edit2.Text; MenuItem:=TMenuItem.Create(PopupMenu); MenuItem.Caption:=Form5.edit1.text; PopupMenu.Add(MenuItem); end;
Et la procédure de récupération des clés et valeurs :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 form2.ListBox1.Items.Clear; Chemin := ;//Valeur du fichier ini If FindFirst(Chemin+'*.*',faAnyFile,Info)=0 Then Begin Repeat If (Info.Attr And faDirectory)=0 Then form2.ListBox1.Items.Add(Info.FindData.cFileName); //affichage des fichier Until FindNext(Info)<>0; FindClose(Info); End;
J'ai tout fais (Création de l'objet au bon endroit, affectation de l'évènement, inscription dans le fichier ini), il me manque juste à pouvoir le charger...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 procedure traitement(); begin //PARTIE DE CREATION DU POPUPMENU if not fileexists('F:\Documents de r3\Divers\Programmes\Dossiers\Lanceur\Menu.ini') then begin ini:=TIniFile.Create('F:\Documents de r3\Divers\Programmes\Dossiers\Lanceur\Menu.ini'); Ini.WriteString('FICHIER DU POPUPMENU', 'CE FICHIER NE DOIT EN AUCUN CAS ETRE SUPPRIME', ''); end else begin ini:=TIniFile.Create('F:\Documents de r3\Divers\Programmes\Dossiers\Lanceur\Menu.ini'); //C'est ici que je bloque. J'ai essayé de lire la section entiere avec "readsectionvalues" mais je n'ai pas le résultat espéré end; end;
Quelqu'un aurait une idée ?
Merci d'avance.
Partager