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
UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|