IniFilesTMemIniFile (C++)
Description
This example demonstrates the usage of Ini files in order to store and load form configuration between sessions. Example requires that a RadioGroup and two buttons are present on the main form.
Code
void __fastcall TForm2::btStoreClick(TObject *Sender)
{
/* Open an instance. */
TCustomIniFile* SettingsFile = OpenIniFileInstance();
// Store current form properties to be used in later sessions.
try
{
SettingsFile->WriteInteger (Name, "Top", Top);
SettingsFile->WriteInteger (Name, "Left", Left);
SettingsFile->WriteInteger (Name, "Width", Width);
SettingsFile->WriteInteger (Name, "Height", Height);
SettingsFile->WriteString (Name, "Caption", Caption);
SettingsFile->WriteBool (Name, "InitMax", WindowState == wsMaximized );
}
catch(Exception* e)
{
}
delete SettingsFile;
}
void __fastcall TForm2::btLoadClick(TObject *Sender)
{
/* Open an instance. */
TCustomIniFile* SettingsFile = OpenIniFileInstance();
try
{
/*
Read all saved values from the last session. The section name
is the name of the form. Also, use the form's properties as defaults.
*/
Top = SettingsFile->ReadInteger(Name, "Top", Top );
Left = SettingsFile->ReadInteger(Name, "Left", Left );
Width = SettingsFile->ReadInteger(Name, "Width", Width );
Height = SettingsFile->ReadInteger(Name, "Height", Height );
Caption = SettingsFile->ReadString (Name, "Caption", Caption);
// Load last window state.
if (SettingsFile->ReadBool(Name, "InitMax", WindowState == wsMaximized))
WindowState = wsMaximized;
else
WindowState = wsNormal;
}
catch(Exception* e)
{
}
delete SettingsFile;
}
TCustomIniFile* __fastcall TForm2::OpenIniFileInstance()
{
/*
Open/create a new INI file that has the same name as
your executable, only with the INI extension.
*/
switch (RadioGroup1->ItemIndex)
{
case 0:
/* Registry mode selected: in HKEY_CURRENT_USER\Software\... */
return new TRegistryIniFile(String("Software\\") + Application->Title);
case 1:
/* Ini file mode selected */
return new TIniFile(ChangeFileExt(Application->ExeName, ".INI"));
case 2:
/* Memory based Ini file mode selected */
return new TMemIniFile(ChangeFileExt(Application->ExeName, ".INI"));
}
}
Uses
- System.Win.Registry.TRegistryIniFile ( fr | de | ja )
- System.IniFiles.TIniFile ( fr | de | ja )
- System.IniFiles.TMemIniFile ( fr | de | ja )
- System.IniFiles.TCustomIniFile ( fr | de | ja )
- System.IniFiles.TCustomIniFile.ReadInteger ( fr | de | ja )
- System.IniFiles.TCustomIniFile.ReadString ( fr | de | ja )
- System.IniFiles.TCustomIniFile.ReadBool ( fr | de | ja )
- System.IniFiles.TCustomIniFile.WriteInteger ( fr | de | ja )
- System.IniFiles.TCustomIniFile.WriteString ( fr | de | ja )
- System.IniFiles.TCustomIniFile.WriteBool ( fr | de | ja )
- System.IniFiles.TIniFile.ReadString ( fr | de | ja )
- System.IniFiles.TIniFile.WriteString ( fr | de | ja )
- System.IniFiles.TMemIniFile.ReadString ( fr | de | ja )
- System.IniFiles.TMemIniFile.WriteString ( fr | de | ja )
- System.Win.Registry.TRegistryIniFile.ReadInteger ( fr | de | ja )
- System.Win.Registry.TRegistryIniFile.ReadString ( fr | de | ja )
- System.Win.Registry.TRegistryIniFile.WriteInteger ( fr | de | ja )
- System.Win.Registry.TRegistryIniFile.WriteString ( fr | de | ja )