C'est suite à une question du forum.
Voici deux procédures qui permettent d'enregistrer un TStringGrid dans un fichier .INI. La taille de la grille est aussi enregistrée. Ce qui permet d'adapter la taille de la grille à la relecture du fichier.
Pour enregistrer une grille : SauveGrille('C:\TEMP\ESSAI.INI',StringGrid1);
Pour relire une grille : LectureGrille('C:\TEMP\ESSAI.INI',StringGrid1);
Il est aussi possible d'enregistrer automatiquement une grille dans le OnDestroy d'une fiche et de la relire dans le OnCreate à l'aide de ces procédures.
Source / Exemple :
Procedure SauveGrille(NomFichier:String;Grille:TStringGrid);
Var Ini:TIniFile;
i,j:Integer;
begin
Ini:=TIniFile.Create(NomFichier);
With Grille Do Try
Ini.WriteInteger('GENERAL','RowCount',RowCount);
Ini.WriteInteger('GENERAL','ColCount',ColCount);
For i:=0 To ColCount-1 Do For j:=0 To RowCount-1 Do
Ini.WriteString(IntToStr(i),IntToStr(j),Cells[i,j]);
Finally
Ini.Free;
End;
End;
Procedure LectureGrille(NomFichier:String;Grille:TStringGrid);
Var Ini:TIniFile;
i,j:Integer;
begin
Ini:=TIniFile.Create(NomFichier);
With Grille Do Try
If INI.ValueExists('GENERAL','RowCount')And
INI.ValueExists('GENERAL','ColCount')
Then Begin
RowCount:=Ini.ReadInteger('GENERAL','RowCount',RowCount);
ColCount:=Ini.ReadInteger('GENERAL','ColCount',ColCount);
For i:=0 To ColCount-1 Do For j:=0 To RowCount-1 Do
Cells[i,j]:=Ini.ReadString(IntToStr(i),IntToStr(j),'');
End;
Finally
Ini.Free;
End;
End;
Conclusion :
Cette source et quelques autres sur :
http://nono40.developpez.com
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.