Accueil > > > SAUVEGARDE DES PARAMETRES DE VOTRE APPLICATION
SAUVEGARDE DES PARAMETRES DE VOTRE APPLICATION
Information sur la source
Description
Cette class permet de sauvegarder l'état de vos composants (TEDit, TCheckBox, TComboBox, et TListBox) et de les restaurer au prochain lancement de votre application. (A condition de le faire au bon evenements). Source + Zip exemple !
Source
- { --------------------------------------------------
- Elguevel (c) 2006
-
- Système de sauvegarde et restauration
- de l'etat d'une application
-
- Ecrit Par LEVEUGLE Damien
- Avec Delphi 7 Personnel
-
- -------------------------------------------------- }
-
- unit ElgRegistre;
-
- interface
-
- { Librairies }
- uses Windows, Classes, Registry, SysUtils, StdCtrls;
-
- { -------------- Ma classe TRegistre hérité de TRegistry -------------- }
-
- type TRegistre = class( TRegistry )
-
- private
- { Attributs }
- Path : String; // OpenKey();
-
- { Methodes privées }
- function Slach ( Chemin : String ) : String;
-
- procedure SetListe( Liste : TStrings; SousChemin : String );
- function GetListe( SousChemin : String ) : TStrings;
-
- procedure SetPath( NouveauChemin : String );
- property GetPath : String Read Path;
-
- public
- { Constructeur }
- constructor Create; overload;
- constructor Create( Chemin : String ); overload;
- constructor Create( Chemin : String; ForcerEcriture : Boolean ); overload;
-
- { Methodes publics }
- procedure EcritCle( Cle : string; CEdit : TCustomEdit ); overload;
- procedure EcritCle( Cle : string; CCombo : TCustomComboBox ); overload;
- procedure EcritCle( Cle : string; CCheck : TCheckBox ); overload;
- procedure EcritCle( Cle : string; CListBox: TCustomListBox ); overload;
-
- procedure LireCle( Cle : string; CEdit : TCustomEdit ); overload;
- procedure LireCle( Cle : string; CCombo : TCustomComboBox ); overload;
- procedure LireCle( Cle : string; CCheck : TCheckBox ); overload;
- procedure LireCle( Cle : string; CListBox : TCustomListBox ); overload;
-
- end;
-
- { ---------------------------------------------------------------------- }
-
- const
- DEFAULT_REG_KEY = 'Software\Elguevel\'; { Chemin par défault }
-
- { .CODE }
- implementation
-
-
- // ****************************************
- // ************ CONSTRUCTEUR *************
- // ****************************************
-
-
- { Constructeur : ouvre le registre à la clé par default }
- constructor TRegistre.Create();
- begin
- inherited Create;
- RootKey := HKEY_CURRENT_USER;
- Path := DEFAULT_REG_KEY;
- OpenKey(DEFAULT_REG_KEY, True);
- end;
-
- { Constructeur : ouvre le registre à la clé specifier }
- constructor TRegistre.Create( Chemin : string );
- begin
- if ( Trim(Chemin) = '' ) then Chemin := DEFAULT_REG_KEY;
- inherited Create;
- RootKey := HKEY_CURRENT_USER;
- Path := Chemin;
- OpenKey(Chemin, True);
- end;
-
- { Constructeur : ouvre le registre à la clé specifier
- et offre la possibilité de forcer ou pas l'écriture de la clé }
- constructor TRegistre.Create( Chemin : string; ForcerEcriture : boolean );
- begin
- if ( Trim(Chemin) = '' ) then Chemin := DEFAULT_REG_KEY;
- inherited Create;
- RootKey := HKEY_CURRENT_USER;
- Path := Chemin;
- OpenKey(Chemin, ForcerEcriture);
- end;
-
-
- // *******************************************
- // ************ METHODES PRIVEES *************
- // *******************************************
-
- { Change chemin du registre courant }
- procedure TRegistre.SetPath( NouveauChemin : string );
- begin
- Path := Slach(NouveauChemin);
- CloseKey;
- OpenKey( Slach(NouveauChemin), True );
- end;
-
- { Ecrit une TStringList dans une clé de registre }
- procedure TRegistre.SetListe( Liste : TStrings; SousChemin : string ) ;
- var
- I, J : Cardinal;
- ListeReg : TStrings;
- Memoire : string;
- begin
- try
- { Change chemin }
- Memoire := Path;
- SetPath( Slach(Path) + SousChemin );
- { Efface anciennes valeurs }
- ListeReg := TStringList.Create;
- GetValueNames( ListeReg );
- if ( ListeReg.Count > 0 ) then for I := 0 to ( ListeReg.Count - 1 ) do
- DeleteValue( ListeReg.Strings[I] );
- ListeReg.Free;
- {Reecrit nouvelle valeur dans sous chemin }
- if ( Liste.Count > 0 ) then for J := 0 to ( Liste.Count - 1 ) do
- WriteString( IntToStr(J), Liste.Strings[J] );
- finally
- { Retablie chemin d'origine }
- SetPath( Memoire );
- end;
- end;
-
- { Recupere une clé de registre sous forme de TStringList }
- function TRegistre.GetListe( SousChemin : string ) : TStrings;
- var
- ListeCle : TStrings;
- ListeValeur : TStrings;
- I : Cardinal;
- Memoire : string;
- begin
- try
- { Change chemin }
- Memoire := Path;
- SetPath( Slach(Path) + SousChemin );
- { Crée les listes virtuelles }
- ListeCle := TStringList.Create;
- ListeValeur := TStringList.Create;
- { Recupère la liste des clés }
- GetValueNames( ListeCle );
- { Recupère la liste des valeurs }
- if ( ListeCle.Count > 0 ) then for I := 0 to ( ListeCle.Count - 1 )
- do ListeValeur.Add( ReadString( ListeCle.Strings[I] ) );
- finally
- { Retablie chemin d'origine }
- SetPath( Memoire );
- { Renvoi le resultat }
- Result := ListeValeur;
- { detruit objets }
- ListeCle.Free;
- end;
- end;
-
- { Ajoute un '/' en fin de chemin s'il n'y est pas }
- function TRegistre.Slach( Chemin : string ) : string;
- begin
- if ( Trim( Copy( Chemin, Length(Chemin), 1 ) ) <> '\' ) then
- Result := Trim(Chemin) + '\'
- else
- Result := Trim(Chemin);
- end;
-
-
- // *******************************************
- // ************ METHODES PUBLICS *************
- // *******************************************
-
- { Sauvegarde un TEdit }
- procedure TRegistre.EcritCle( Cle : string; CEdit : TCustomEdit );
- begin
- WriteString( Cle, CEdit.Text );
- end;
-
- { Sauvegarde une ComboBox }
- procedure TRegistre.EcritCle( Cle : string; CCombo : TCustomComboBox );
- begin
- WriteInteger( Cle, CCombo.ItemIndex );
- end;
-
- { Sauvegarde une CheckBox }
- procedure TRegistre.EcritCle( Cle : string; CCheck : TCheckBox );
- begin
- WriteBool( Cle, CCheck.Checked );
- end;
-
- { Sauvegarde contenu d'une ListBox }
- procedure TRegistre.EcritCle( Cle : String; CListBox : TCustomListBox );
- begin
- if ( CListBox.Count > 0 ) then SetListe( CListBox.Items, Cle );
- end;
-
- { Recupère un TEdit }
- procedure TRegistre.LireCle( Cle : string; CEdit : TCustomEdit );
- begin
- try
- CEdit.Text := ReadString( Cle );
- except
- on ERegistryException do CEdit.Text := '';
- end;
- end;
-
- { Recupère une ComboBox}
- procedure TRegistre.LireCle( Cle : string; CCombo : TCustomComboBox );
- begin
- try
- CCombo.ItemIndex := ReadInteger( Cle );
- except
- on ERegistryException do CCombo.ItemIndex := 0;
- end;
- end;
-
- { Recupère une CheckBox }
- procedure TRegistre.LireCle( Cle : string; CCheck : TCheckBox );
- begin
- try
- CCheck.Checked := ReadBool( Cle );
- except
- on ERegistryException do CCheck.Checked := False;
- end;
- end;
-
- { Recupère contenu d'une TlistBox }
- procedure TRegistre.LireCle ( Cle : String; CListBox : TCustomListBox );
- begin
- CListBox.Items := GetListe( Cle );
- end;
-
- end.
{ --------------------------------------------------
Elguevel (c) 2006
Système de sauvegarde et restauration
de l'etat d'une application
Ecrit Par LEVEUGLE Damien
Avec Delphi 7 Personnel
-------------------------------------------------- }
unit ElgRegistre;
interface
{ Librairies }
uses Windows, Classes, Registry, SysUtils, StdCtrls;
{ -------------- Ma classe TRegistre hérité de TRegistry -------------- }
type TRegistre = class( TRegistry )
private
{ Attributs }
Path : String; // OpenKey();
{ Methodes privées }
function Slach ( Chemin : String ) : String;
procedure SetListe( Liste : TStrings; SousChemin : String );
function GetListe( SousChemin : String ) : TStrings;
procedure SetPath( NouveauChemin : String );
property GetPath : String Read Path;
public
{ Constructeur }
constructor Create; overload;
constructor Create( Chemin : String ); overload;
constructor Create( Chemin : String; ForcerEcriture : Boolean ); overload;
{ Methodes publics }
procedure EcritCle( Cle : string; CEdit : TCustomEdit ); overload;
procedure EcritCle( Cle : string; CCombo : TCustomComboBox ); overload;
procedure EcritCle( Cle : string; CCheck : TCheckBox ); overload;
procedure EcritCle( Cle : string; CListBox: TCustomListBox ); overload;
procedure LireCle( Cle : string; CEdit : TCustomEdit ); overload;
procedure LireCle( Cle : string; CCombo : TCustomComboBox ); overload;
procedure LireCle( Cle : string; CCheck : TCheckBox ); overload;
procedure LireCle( Cle : string; CListBox : TCustomListBox ); overload;
end;
{ ---------------------------------------------------------------------- }
const
DEFAULT_REG_KEY = 'Software\Elguevel\'; { Chemin par défault }
{ .CODE }
implementation
// ****************************************
// ************ CONSTRUCTEUR *************
// ****************************************
{ Constructeur : ouvre le registre à la clé par default }
constructor TRegistre.Create();
begin
inherited Create;
RootKey := HKEY_CURRENT_USER;
Path := DEFAULT_REG_KEY;
OpenKey(DEFAULT_REG_KEY, True);
end;
{ Constructeur : ouvre le registre à la clé specifier }
constructor TRegistre.Create( Chemin : string );
begin
if ( Trim(Chemin) = '' ) then Chemin := DEFAULT_REG_KEY;
inherited Create;
RootKey := HKEY_CURRENT_USER;
Path := Chemin;
OpenKey(Chemin, True);
end;
{ Constructeur : ouvre le registre à la clé specifier
et offre la possibilité de forcer ou pas l'écriture de la clé }
constructor TRegistre.Create( Chemin : string; ForcerEcriture : boolean );
begin
if ( Trim(Chemin) = '' ) then Chemin := DEFAULT_REG_KEY;
inherited Create;
RootKey := HKEY_CURRENT_USER;
Path := Chemin;
OpenKey(Chemin, ForcerEcriture);
end;
// *******************************************
// ************ METHODES PRIVEES *************
// *******************************************
{ Change chemin du registre courant }
procedure TRegistre.SetPath( NouveauChemin : string );
begin
Path := Slach(NouveauChemin);
CloseKey;
OpenKey( Slach(NouveauChemin), True );
end;
{ Ecrit une TStringList dans une clé de registre }
procedure TRegistre.SetListe( Liste : TStrings; SousChemin : string ) ;
var
I, J : Cardinal;
ListeReg : TStrings;
Memoire : string;
begin
try
{ Change chemin }
Memoire := Path;
SetPath( Slach(Path) + SousChemin );
{ Efface anciennes valeurs }
ListeReg := TStringList.Create;
GetValueNames( ListeReg );
if ( ListeReg.Count > 0 ) then for I := 0 to ( ListeReg.Count - 1 ) do
DeleteValue( ListeReg.Strings[I] );
ListeReg.Free;
{Reecrit nouvelle valeur dans sous chemin }
if ( Liste.Count > 0 ) then for J := 0 to ( Liste.Count - 1 ) do
WriteString( IntToStr(J), Liste.Strings[J] );
finally
{ Retablie chemin d'origine }
SetPath( Memoire );
end;
end;
{ Recupere une clé de registre sous forme de TStringList }
function TRegistre.GetListe( SousChemin : string ) : TStrings;
var
ListeCle : TStrings;
ListeValeur : TStrings;
I : Cardinal;
Memoire : string;
begin
try
{ Change chemin }
Memoire := Path;
SetPath( Slach(Path) + SousChemin );
{ Crée les listes virtuelles }
ListeCle := TStringList.Create;
ListeValeur := TStringList.Create;
{ Recupère la liste des clés }
GetValueNames( ListeCle );
{ Recupère la liste des valeurs }
if ( ListeCle.Count > 0 ) then for I := 0 to ( ListeCle.Count - 1 )
do ListeValeur.Add( ReadString( ListeCle.Strings[I] ) );
finally
{ Retablie chemin d'origine }
SetPath( Memoire );
{ Renvoi le resultat }
Result := ListeValeur;
{ detruit objets }
ListeCle.Free;
end;
end;
{ Ajoute un '/' en fin de chemin s'il n'y est pas }
function TRegistre.Slach( Chemin : string ) : string;
begin
if ( Trim( Copy( Chemin, Length(Chemin), 1 ) ) <> '\' ) then
Result := Trim(Chemin) + '\'
else
Result := Trim(Chemin);
end;
// *******************************************
// ************ METHODES PUBLICS *************
// *******************************************
{ Sauvegarde un TEdit }
procedure TRegistre.EcritCle( Cle : string; CEdit : TCustomEdit );
begin
WriteString( Cle, CEdit.Text );
end;
{ Sauvegarde une ComboBox }
procedure TRegistre.EcritCle( Cle : string; CCombo : TCustomComboBox );
begin
WriteInteger( Cle, CCombo.ItemIndex );
end;
{ Sauvegarde une CheckBox }
procedure TRegistre.EcritCle( Cle : string; CCheck : TCheckBox );
begin
WriteBool( Cle, CCheck.Checked );
end;
{ Sauvegarde contenu d'une ListBox }
procedure TRegistre.EcritCle( Cle : String; CListBox : TCustomListBox );
begin
if ( CListBox.Count > 0 ) then SetListe( CListBox.Items, Cle );
end;
{ Recupère un TEdit }
procedure TRegistre.LireCle( Cle : string; CEdit : TCustomEdit );
begin
try
CEdit.Text := ReadString( Cle );
except
on ERegistryException do CEdit.Text := '';
end;
end;
{ Recupère une ComboBox}
procedure TRegistre.LireCle( Cle : string; CCombo : TCustomComboBox );
begin
try
CCombo.ItemIndex := ReadInteger( Cle );
except
on ERegistryException do CCombo.ItemIndex := 0;
end;
end;
{ Recupère une CheckBox }
procedure TRegistre.LireCle( Cle : string; CCheck : TCheckBox );
begin
try
CCheck.Checked := ReadBool( Cle );
except
on ERegistryException do CCheck.Checked := False;
end;
end;
{ Recupère contenu d'une TlistBox }
procedure TRegistre.LireCle ( Cle : String; CListBox : TCustomListBox );
begin
CListBox.Items := GetListe( Cle );
end;
end.
Conclusion
Laissez vos commentaires et vos notes !
Historique
- 31 janvier 2006 15:14:41 :
- Mis à jour du code + Zip
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
passer des parametres a une application [ par MoveX ]
comment passer des parametres a une application deja lancee a l aide de la commande executer ou d une fenetre dos?du style, "monapplication.exe /stop"
sauvegarde EXCEL [ par othland ]
slt tlm;j'ai une application delphi qui sauvegarde une table dans un fichier EXCEL, j'ai utilisé la méthode suivante:OleWorkBook.SaveAs['C:\dell\exc00
Application MDI et sauvegarde [ par christophedlr ]
Bonjour à tous,Dans mon programme, j'utilise ls système d'application MDI.Mon problème, c'est que la fiche MDI enfant est créer dynamiquement(créer ju
allumer éteindre / veille [ par Maniaxman ]
bonjour, j'ai trouvé ces deux fonctions si pour allumer et éteindre l'écran : SendMessage(Application.Handle, WM_SYSCOMMAND, SC_MONITORPOWER, 1);//é
rendre mon application installable [ par paradoxham ]
slt j ai fait une application sur delphi 7 et access 2003. je veux rendre cette aplication installable( c est a dire il existe une econe d 'installati
Démarrer une application dans le systray [ par John Dogget ]
Bonjour à tous.J'écris une application qui doit pouvoir démarrer dans la barre des tâches.Pour ça j'utilise la JVCL, mais je ne parviens pas tout à fa
Manque le composant TTimer [ par roeugene ]
Dans l'application que j'ai développé en Delphi 7, j'utilisé le composant TTimer. Maintenant quand j'ouvre l'application sous Delphi 7 sur un autr
S.O.S acces sous reseau [ par louiza81 ]
bonjour je suis debutante en delphi , je voudrais realiser une petite application sous reseaux avec 1 base de données access ....comment faire pour
ouvrir une application présente dans le tray [ par rvicko ]
bonjour a tousvoici mon problememon programme detecte si une instance est deja lancée ou pas. Si c'est le cas alors il se termine.ca marche bien. Mais
Installation sur DD Application en HTML [ par vhalter ]
Bonjour à tous.J'ai fait un Autorun.inf qui devrait permettre l'autorisation (sur Win XP SP2) le lancement du cdrom et voilà le contenu:[version]signa
|
Derniers Blogs
TECHDAYS PARIS 2012 : COMMENT SHAREPOINT A SAUVé MES TECHDAYSTECHDAYS PARIS 2012 : COMMENT SHAREPOINT A SAUVé MES TECHDAYS par ROMELARD Fabrice
Speakers : Lionel Limozin et Alain Marty La session commence par une découverte de SharePoint à travers la mise en place d'un environnement SharePoint pour la gestion des Sessions animées par BeWise. Le besoin est très ba...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice PERSPECTIVE 3.0 POUR SILVERLIGHT 5.0PERSPECTIVE 3.0 POUR SILVERLIGHT 5.0 par odewit
Je viens de publier la version 3.0 de Perspective pour Silverlight, qui regroupe un portage sous Silverlight 5.0 des fonctionnalités de Perspective 2.0, le framework 3D de haut-niveau introduit récemment et de nouveaux exemples de code. En voici la li...
Cliquez pour lire la suite de l'article par odewit TECHDAYS PARIS 2012 : TOP 10 DES BEST PRACTICES POUR SQL SERVERTECHDAYS PARIS 2012 : TOP 10 DES BEST PRACTICES POUR SQL SERVER par ROMELARD Fabrice
Speaker : Nadia Ben El Kadi Configuration machine La session commence par la toute première question à se poser lors de la mise en place d'environnement SQL Server, la configuration des machines : Type de mac...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2012 : KINECT + OFFICE 365 UN BON GESTE POUR VOTRE SITECHDAYS PARIS 2012 : KINECT + OFFICE 365 UN BON GESTE POUR VOTRE SI par ROMELARD Fabrice
Speakers : Fabrice Barbin, Samuel Blanchard, Julien Lo Presti Titre Prometteur et attractif invitant à voir comment lier le composant ludique Kinect dans le cadre d'une structure IT classique, notamment au travers de la plat...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2012 : PLEINIèRE DU PREMIER JOURTECHDAYS PARIS 2012 : PLEINIèRE DU PREMIER JOUR par ROMELARD Fabrice
KeyNotes du premier jour pour les développeurs. La session est principalement axée sur une des principales directions prise par Microsoft à travers tous ses nouveaux produits : Cloud privé ou public (Solution Azure) ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
RE : BONJOUR A VOUSRE : BONJOUR A VOUS par pierrotk10d
Cliquez pour lire la suite par pierrotk10d
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|