Reputation: 157
I hope that you can help me to resolve this compilation error.
I'm trying to test code taken from Embarcadero's official documentation website, which has at aim to test the TIniFile
class.
However I get this error:
Unit2.cpp(76): parsing: TCustomIniFile * _fastcall Form2::OpenIniFileInstance().
Below is my code:
#include <vcl.h>
#pragma hdrstop
#include "Unit2.h"
#include <IniFiles.hpp>
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm2 *Form2;
__fastcall TForm2::TForm2(TComponent* Owner)
: TForm(Owner)
{
}
void __fastcall TForm2::btStoreClickClick(TObject *Sender)
{
//First Edit of the file
/* 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)
{
TCustomIniFile* SettingsFile = OpenIniFileInstance();
try
{
/*
Read all saved values from the last session. The section name
is the name of the form. Also use 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()
{
TCustomIniFile* temp;
switch (RadioGroup1->ItemIndex)
{
case 0: {
/* Registry mode selected: in HKEY_CURRENT_USER\Software\... */
temp = new TRegistryIniFile(String("Software\\") + Application->Title);
}
break;
case 1: {
/* Ini file mode selected */
temp = new TIniFile(ChangeFileExt(Application->ExeName, ".INI"));
}
break;
case 2: {
/* Memory based Ini file mode selected */
temp = new TMemIniFile(ChangeFileExt(Application->ExeName, ".INI"));
}
break;
default:
break;
}
return temp;
}
Upvotes: 0
Views: 256
Reputation: 157
Thanks everybody.
I have find the solution to resolve this issue. I miss the header file #include<System.Win.Registry.hpp>
Best regards.
Upvotes: 1