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 )