Выделение и удаление памяти
Я создал новый юнит под названием Settings, в этом же файле поместил указатель TSettings *Settings.
1)Как я могу сделать чтобы он выделялся автоматически также как это происходит в юнитах с формами?
Settings.h
//---------------------------------------------------------------------------
#ifndef SettingsH
#define SettingsH
//---------------------------------------------------------------------------
#include <System.Classes.hpp>
#include <System.IniFiles.hpp>
//---------------------------------------------------------------------------
class TSettings : public TObject
{
private:
TMemIniFile *Ini;
UnicodeString __fastcall ReadPassword();
void __fastcall WritePassword(UnicodeString password);
public:
__fastcall TSettings();
__fastcall ~TSettings();
__property UnicodeString Password = { read = ReadPassword, write = WritePassword };
};
//---------------------------------------------------------------------------
extern PACKAGE TSettings *Settings;
//---------------------------------------------------------------------------
#endif
Settings.cpp
//---------------------------------------------------------------------------
#pragma hdrstop
#include "Settings.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
TSettings *Settings; // Я видел подобное в юнитах с формами, и там он сам инициализируется
//---------------------------------------------------------------------------
__fastcall TSettings::TSettings()
{
Ini = new TMemIniFile(L"Settings.ini");
}
//---------------------------------------------------------------------------
__fastcall TSettings::~TSettings()
{
}
//---------------------------------------------------------------------------
UnicodeString __fastcall TSettings::ReadPassword()
{
return Ini->ReadString(L"Login", L"Password", L"password");
}
//---------------------------------------------------------------------------
void __fastcall TSettings::WritePassword(UnicodeString Password)
{
Ini->WriteString(L"Login", "Password", Password);
Ini->UpdateFile();
}
//---------------------------------------------------------------------------
Также у меня есть указатель на объекь TMemIniFile. 2) Нужно ли освобождать в ручную память? Я видел в юнитах с формами нету деструктора с delete.