Проблема остается неразрешенной.
Для повторения ошибки я создал простое приложение, состоящее из одной формы, без каких-либо элементов управления
MainWnd.h
Код |
---|
//---------------------------------------------------------------------------
#ifndef MainWndH
#define MainWndH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Fo rms.hpp>
#ifdef TEST_ICON_DISAPPEAR
#include "DLGMINI.hpp"
#include "mapcmp.hpp"
#include "mapscrn.hpp"
#include "mapwina.hpp"
#include "mappoint.hpp"
#include "mapobj.hpp"
#include "mapviewa.hpp"
#endif // TEST_ICON_DISAPPEAR
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published: // IDE-managed Components
void __fastcall FormDestroy(TObject *Sender);
private: // User declarations
#ifdef TEST_ICON_DISAPPEAR
TMapPoint* m_MapPoint;
TMapObj* m_MapObj;
TMapScreen* m_MapScreen;
#endif
public: // User declarations
__fastcall TForm1(TComponent* Owner);
void __fastcall MapScreenClear();
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
|
MainWnd.cpp
Код |
---|
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "MainWnd.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#ifdef TEST_ICON_DISAPPEAR
#pragma link "$(BDS)\\lib\\Mappack.lib"
#pragma link "$(BDS)\\GisTool11\\gisacces.lib"
#pragma link "mapcmp"
#pragma link "mapscrn"
#pragma link "mapviewa"
#pragma link "mapwina"
#pragma link "mapviewa"
#endif // TEST_ICON_DISAPPEAR
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
#ifdef TEST_ICON_DISAPPEAR
m_MapScreen = new TMapScreen(this);
m_MapScreen->Parent = this;
m_MapObj = new TMapObj(this);
m_MapPoint = new TMapPoint(this);
#endif
}
//---------------------------------------------------------------------------
void __fastcall TForm1::MapScreenClear(void)
{
#ifdef TEST_ICON_DISAPPEAR
m_MapScreen->MapFileName = "";
delete m_MapObj;
delete m_MapPoint;
delete m_MapScreen;
#endif
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormDestroy(TObject *Sender)
{
MapScreenClear();
}
//---------------------------------------------------------------------------
|
В проекте создана новая конфигурация 'GisLinkedDebug', в которой в опциях Conditional Defines добавлен дефайн TEST_ICON_DISAPPEAR
При сборке в этой конфигурации иконка формы пропадает. При сборке в Debug - присутствует.