Выделение и удаление памяти

Я создал новый юнит под названием 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.


Ответы (0 шт):