Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Удаление

4.7K
12 января 2006 года
docjohn
36 / / 11.10.2005
Печатаю через QReport несколько листов.
На каждом свой переменный набор элементов, создаваемых через NEW.
Например
TQRShape *r = new TQRShape(form->qr);
r->Parent=form->qr;
r->Name="nnmm"+i;
Ессно на кажой последующей странице печатаются все элементы предыдущих страниц.
Нужно чтобы для каждой страницы после события Print() предыдущие элементы удалялись, то есть
удалять их через delete.
Но delete r; в событии AfterPrint выдает ошибку
Ошибка Undefinied symbol "r".

HELP
14K
12 января 2006 года
Farnsworth
9 / / 17.12.2005
Сделай переменную r глобальной. Или, лучше, принадлежащей классу формы. Ведь переменную r ты создаешь в одной процедуре, а удалить хочешь в другой - для этих двух процедур переменная должна быть в одном пространстве имен.
4.7K
13 января 2006 года
docjohn
36 / / 11.10.2005
Цитата:
Originally posted by Farnsworth
Сделай переменную r глобальной. Или, лучше, принадлежащей классу формы. Ведь переменную r ты создаешь в одной процедуре, а удалить хочешь в другой - для этих двух процедур переменная должна быть в одном пространстве имен.



Сделал глобальную переменную и все получилось.
Теперь следующая проблема.
Мне нужно сделать переменное кол-во элементов TQRShape на каждой странице.
И затем их удалить.
Они формируются в цикле.
Что-то типа
for(i=1;i<=kol;i++)
{
...
r = new TQRShape(form->qr);
...
}
В таком виде через delete r; удаляется ессно только последний элемент.

В цикле должны формироваться элементы с именами в соответствии со счетчиком цикла, например
r1, r2, r3 и т.д.
Как это сделать?

14K
13 января 2006 года
Farnsworth
9 / / 17.12.2005
Цитата:
Originally posted by docjohn
В цикле должны формироваться элементы с именами в соответствии со счетчиком цикла, например
r1, r2, r3 и т.д.
Как это сделать?



Ох, какой кошмар, конечно у тебя будет удаляться только последняя созданная переменная.
Делай массив переменных.

 
Код:
TQRShape * r[100];
...
r=new TQRShape(form->qr);
....
delete r;

Или, если количество элементов тебе заранее неизвестно, лист из компонента TList.
299
13 января 2006 года
3D Bob
885 / / 18.04.2005
Сначало учится язык программирования, а потом пишутся программы ;)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог