Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как сделать Control.Dispose() после Controls.Clear 
:(
    Опции темы
unLIMIT1984
Дата 21.10.2009, 22:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 17.5.2009

Репутация: нет
Всего: нет



Привет.
Ребята, как это сделать на С#.NET знаю, а на C++.NET не знаю. Подскажите.

Код

private System.Windows.Forms.FlowLayoutPanel panel;
private void button1_Click(object sender, EventArgs e)
{
    int count = 1000;
    Control[] arr = new Control[count];
    for (int i = 0; i < count; i++)
    {
        RichTextBox rich = new System.Windows.Forms.RichTextBox();
        arr[i] = rich;
    }
    panel.Controls.AddRange(arr);
}
private void button2_Click(object sender, EventArgs e)
{
    int count = panel.Controls.Count;
    Control[] arr = new Control[count];
    for (int i = 0; i < count; i++)
        arr[i] = panel.Controls[i];
    panel.Controls.Clear();
    for (int j = 0; j < count; j++)
    {
        if (arr[j] != null)
            arr[j].Dispose(); //ЕДИНСТВЕННОЕ МЕСТО в программе, которое не знаю, как переписать на С++
    }
}


Понятно, что на C++, по сути "." заменятся на ->. Control[] заменится на array<Control^>^, а вот Dispose() для контролов нельзя вызывать в С++.
Подскажите, что делать?
После panel.Controls.Clear(), объекты все еще хранятся в памяти, как их удалить на С++?
PM MAIL   Вверх
zim22
Дата 22.10.2009, 08:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 24
Всего: 69



Цитата(unLIMIT1984 @  21.10.2009,  22:44 Найти цитируемый пост)
объекты все еще хранятся в памяти, как их удалить на С++?

Код

delete [] arr;



--------------------
PM MAIL   Вверх
xvr
Дата 22.10.2009, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 60
Всего: 223



Цитата(zim22 @ 22.10.2009,  08:35)
Цитата(unLIMIT1984 @  21.10.2009,  22:44 Найти цитируемый пост)
объекты все еще хранятся в памяти, как их удалить на С++?

Код

delete [] arr;

Вызывает сомнение применимость delete к ^ указателям  smile 
Просто присвой им NULL

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0496 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.