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.


