|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
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 !
Fichier Zip
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
Télécharger le zip
Historique
- 31 janvier 2006 15:14:41 :
- Mis à jour du code + Zip
Sources du même auteur
Sources de la même categorie
Sources en rapport avec celle ci
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
|
Téléchargements
Logiciels à télécharger sur le même thème :
|