Voici un exemple d'un petit tableur qui inclut des fonctions de base telles que le calcul des cellules par référence (par exemple "=A1+B2"), la sauvegarde automatique via un thread et le chargement des données.
Delphi 10 Seattle / Berlin / Tokyo / Rio / Sydney / Alexandria ! (System.JSON et System.Generics.Collections)
La classe TGridCals est conçue pour évaluer des formules mathématiques contenues dans une grille TStringGrid.
Elle permet de traiter des expressions arithmétiques simples en prenant en compte les références aux cellules du tableau.
Voici ses principales fonctions :
Évaluation de formules
La fonction EvaluateFormula prend en entrée une chaîne représentant une formule (comme "=A1+B2"), analyse la syntaxe et en calcule la valeur.
Analyse syntaxique
Elle décompose la formule en expressions (ParseExpression), termes (ParseTerm) et facteurs (ParseFactor), permettant d'évaluer des opérations arithmétiques (+, -, *, /).
Gestion des références aux cellules
La fonction EvaluateToken permet d'extraire une valeur à partir d'une référence de cellule dans la grille, comme A1, B3, etc
En résumé, cette classe est utile pour développer un mini tableur où les cellules peuvent contenir des formules et s'auto-calculer en fonction des autres cellules.
La classe TGridFile est conçue pour gérer la sauvegarde et le chargement des données d’un TStringGrid en format JSON, ainsi que l’automatisation de ces opérations via un thread.
Elle sert principalement à :
Sauvegarde et chargement des données
SaveGridToJSON : Enregistre le contenu d'un TStringGrid dans un fichier JSON, conservant à la fois les données des cellules et les tailles des colonnes.
LoadGridToJSON : Récupère les données depuis un fichier JSON pour les restaurer dans la grille.
Réinitialisation des cellules
ResetGrid : Efface toutes les cellules du TStringGrid, sauf la première ligne (A,B,C,...) et la première colonne (1,2,3,...)
Cette méthode permet de réinitialiser la grille sans perdre la structure.
Sauvegarde automatique avec un thread
StartAutoSave : Lance un thread (classe TGridSaveThread) qui effectue une sauvegarde périodique des données du TStringGrid dans un fichier JSON.
StopAutoSave : Arrête le thread et s'assure qu'il ne fonctionne plus.
Spreadsheet.Grid.zip
Partager