Bonjour,
voila, comme j'en ai marre à chaque fois que je fais une nouvelle application de réécrire complètement la lecture et sauvegarde du .INI de mon appli, je me suis dit que quelqu'un avait peut-être déjà écrit une classe (ou au moins une unité) qui serait capable de construire et lire un .INI en mettant les informations dans un tableau.
L'avantage que je vois c'est que quand on veut ajouter un nouveau paramètre, il n'y a qu'a mettre le tableau des parametres à jour (et éventuellement une structure selon la solution de codage...)
La question est-elle claire? Non? Bon , eh bien par exemple je voudrais faire un truc du genre:
Dans ce code, évidemment seul le type de structure TSaveParam est constant d'un projet à l'autre, tous le reste est à redéfinir pour chaque projet.
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
19
20
21
22
23
24
25
26
27
28
29
30
31 type TInitStruct= record // Ca c'est les données que je veux sauver/lire WHeight,WWidth:integer; WXPos,WYPos:integer; WMaximized:boolean; end; Type TSaveParam= record // exemple d'idée, mais à compléter InfoIndex:integer; SectionId:integer; VarName:string; ??? que sais-je d autre?? end; const // La c'est les sections de mon .INI sectionWindow=0; FirstSection=sectionWindow; LastSection=sectionWindow; const sections : Array [FirstSection..LastSection] of string=('Window'); const // La c'est mes parametres définis dans un joli tableau .INI TSaveParams:Array [0..4] of TSaveParam = ( ( InfoIndex : $00 ; SectionId : sectionWindow; VarName : 'WMaximized' ; ), ( InfoIndex : $01 ; SectionId : sectionWindow; VarName : 'WHeight' ; ), ( InfoIndex : $02 ; SectionId : sectionWindow; VarName : 'WWidth' ; ), ( InfoIndex : $03 ; SectionId : sectionWindow; VarName : 'WXPos' ; ), ( InfoIndex : $04 ; SectionId : sectionWindow; VarName : 'WYPos' ; ) );
Ensuite pour mettre un nouveau parametre il suffit de l'ajouter à TInitStruct, TSaveParams.
Pour une nouvelle section, on ajoute un élément à sections
?
Je n'ai pas réussi à mettre ça en place car il faudrait par exemple ajouter un pointeur vers le champ qui va bien dans les parametres de TSaveParam, mais delphi me dit qu'il attend une constante...
Pour ce que j'ai déjà fait en C, il me semble qu'un pointeur vers un champ d'une variable de type struct est une constante, mais apparemment pas en pascal (euh je voulais ma connaissance du pascal)...
Merci pour vos idées... ou solutions![]()
Partager