I. Sauvegarder la taille et la position de la fiche dans le registre▲
Dans cet exemple nous allons utiliser la classe TRegistry pour sauvegarder et restaurer la taille et la position de la dernière utilisation avant fermeture de notre fiche (Form1).
Unit.h :
#include
<Registry.hpp>
Sauvegarde : à la fermeture de la fiche sur l'événement OnClose de Form1 :
void
__fastcall TForm1::
FormClose(TObject *
Sender, TCloseAction &
Action)
{
TRegistry *
Reg =
new
TRegistry;
Reg->
OpenKey("
\\
Software
\\
Votre_Societe
\\
Votre_Application"
,true
);
if
( WindowState ==
wsNormal )
{
Reg->
WriteBool("Agrandie"
,false
);
Reg->
WriteInteger("Pos_X"
,Left);
Reg->
WriteInteger("Pos_Y"
,Top);
Reg->
WriteInteger("Largeur"
,Width);
Reg->
WriteInteger("Hauteur"
,Height);
}
else
Reg->
WriteBool("Agrandie"
,true
);
Reg->
CloseKey();
delete
Reg;
}
Restauration : à l'ouverture de la fiche sur l'événement OnCreate de Form1 :
void
__fastcall TForm1::
FormCreate(TObject *
Sender)
{
TRegistry *
Reg =
new
TRegistry;
if
( Reg->
OpenKey("
\\
Software
\\
Votre_Societe
\\
Votre_Application"
,false
))
{
try
{
Left =
Reg->
ReadInteger("Pos_X"
);
Top =
Reg->
ReadInteger("Pos_Y"
);
Width =
Reg->
ReadInteger("Largeur"
);
Height =
Reg->
ReadInteger("Hauteur"
);
}
catch
(...) {}
if
( Reg->
ReadBool("Agrandie"
) ) WindowState =
wsMaximized;
}
Reg->
CloseKey();
delete
Reg;
}
Les données de taille et position peuvent ne pas être dans la base de registre si lors des premières utilisations la fiche a été fermée en position Maximised. D'où le bloc try catch pour éviter le message d'erreur en ce cas.
La clé par défaut de TRegistry est HKEY_CURRENT_USER. Donc dans notre exemple les données seront écrites dans : HKEY_CURRENT_USER\Software\Votre_Societe\Votre_Application
ATTENTION aux écritures dans la base de registre. Les erreurs ne sont pas permises.