C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Формы MDI и распределение памяти, (использование vector в MDIChild)
** pasha
Отправлено: 19.03.2004, 10:55


Не зарегистрирован







Есть MDI приложение.

В MDIChild форме использую вектор:
CODE

struct TuzFile{
  byte numf[2];
  int    primf;
  bool isCheck;
}ftuz0;

vector <TuzFile> ftuz;


и заношу в вектор значения (в MDIChild):
ftuz0.numf[0] = 'F'; ftuz.numf[1] = 'G';
...
ftuz.push_back(ftuz0);

Вектор — так как неизвестно сколько таких структур будет
считано из файла в каждую Child-форму.

Казалось-бы — в каждой форме вектор должен быть
независим от других Child-Форм, но получается,
что он один для всех Child-Форм ???
(как-то странно значения из одной Child-формы
перескакивают в другую)

Asher
Отправлено: 19.03.2004, 14:15


Мастер участка

Группа: Модератор
Сообщений: 550



Привет.
если
CODE
vector <TuzFile> ftuz;

описан внутри класса MDIChild формы — то такого быть не должно.
** pasha
Отправлено: 19.03.2004, 14:49


Не зарегистрирован







Как раз было описано сверху в .cpp файл MDIChild формы:

CODE

//----------------------------------------------------------------------------
#ifndef ChildWinH
#define ChildWinH
//----------------------------------------------------------------------------
#include <vcl\Controls.hpp>
#include <vcl\Forms.hpp>
#include <vector>
...
struct TuzFile{
 byte numf[2];
 int    primf;
 bool isCheck;
};

....
TuzFile ftuz0;
TuzZap ztuz0;
std::vector <TuzFile> ftuz;
std::vector <TuzZap>  ztuz;
...
TMainForm *MainForm;
//---------------------------------------------------------------------------

__fastcall TMainForm::TMainForm(TComponent *Owner)
: TForm(Owner)
...



Запихнул внутрь (в .hpp файл MDIChild формы)-
в секцию private — все работает.


CODE

#include <vector>


private:
       TuzFile ftuz0;
       TuzZap ztuz0;
       std::vector <TuzFile> ftuz;
       std::vector <TuzZap>  ztuz;

Вернуться в Вопросы программирования в C++Builder