Текущий архив: 2004.05.30;
Скачать: CL | DM;
ВнизКак правильно очистить массив элементов ? Найти похожие ветки
← →
IrBisoff © (2004-05-15 08:38) [0]Наверное, последний на сегодня вопрос: у меня есть массив элементов TLabel, который я создавал так:
RightLabels[counter] := TLabel.Create(nil); RightLabels[counter].Parent := Freader.RightPage;
, но в один прекрасный момент все компоненты этого массива необходимо удалить, а потом создать заново, но с другими параметрами. Я подумал, что скорее всего это делается так:for i := 1 to RightTotal-1 do RightLabels[i].Free;
. К сожалению, такой вариант выдаёт ошибку.. Я даже не разбирался ещё в какой момент, но ошибка - Access Violation, либо при освбождении итемов либо при попытке создания на их месте новых.
← →
IrBisoff © (2004-05-15 08:50) [1]Уточнение: Компоненты просто великолепно уничтожаются, а вот ошибка выдаётся при создании в массиве компонента по второму кругу.
← →
begin...end © (2004-05-15 09:52) [2]А всё-таки неплохо было бы посмотреть на код.
← →
IrBisoff © (2004-05-15 10:09) [3]Уточнение номер два: Как проблемма появилась, так и решилась. На самом деле код уже настолько массивный, что не мудрено упустить три момента, которые в совокупности образуют эту ошибку. =) А вот касательно кода, всё что нужно было - я привёл в первом посте. Одно только "но" - при нормальных обстоятельствах всё работает великолепно, нужно лишь контролировать, чтобы объект не создавался более одного раза.
← →
MetalFan © (2004-05-15 11:04) [4]мда... изврат какой-то!
← →
Palladin © (2004-05-15 14:36) [5]Просто поменять свойства не судьба?
← →
I.C. (2004-05-15 18:47) [6]Массивы - преданье старины глубокой. Для твоего случая гораздо удобнее пользоваться TCollection+TCollectionItem
← →
Palladin © (2004-05-15 18:51) [7]
> Массивы - преданье старины глубокой
Да что вы говорите?
← →
jack128 © (2004-05-15 18:51) [8]
> Массивы - преданье старины глубокой. Для твоего случая гораздо
> удобнее пользоваться TCollection+TCollectionItem
бред.. Если уж на то пошло TObjectList или TComponentList в зависимости от задачи..
← →
IrBisoff © (2004-05-15 18:57) [9]
> Просто поменять свойства не судьба?
Нет, не судьба... Лэйблы могут создаваться совсем по-разному, на их создание у мну уже отведено порядка 300 строк кода, а на то, чтобы обновить их параметры надо ещё столько же, если не больше. =)
← →
IrBisoff © (2004-05-15 19:01) [10]
> бред.. Если уж на то пошло TObjectList или TComponentList
> в зависимости от задачи..
А какие преимущества ? И куда смотреть на пример реализации ? ;)
← →
IrBisoff © (2004-05-15 19:02) [11]
> бред.. Если уж на то пошло TObjectList или TComponentList
> в зависимости от задачи..
А какие преимущества ? И куда смотреть на пример реализации ? ;)
← →
IrBisoff © (2004-05-15 19:03) [12]
> бред.. Если уж на то пошло TObjectList или TComponentList
> в зависимости от задачи..
А какие преимущества ? И куда смотреть на пример реализации ? ;)
← →
jack128 © (2004-05-15 23:33) [13]
> А какие преимущества ?
Нет необходимости вызывать Free для каждого элемента при удалении этого элемента из списка. КомпонентЛист к тому же сам nil"ит ссылку на уничтоженный компонент.
> И куда смотреть на пример реализации ?
без понятия. Запусти поиск по исходникам VCL - думаю найдешь...
← →
evvcom © (2004-05-16 04:25) [14]
> > Просто поменять свойства не судьба?
>
>
> Нет, не судьба... Лэйблы могут создаваться совсем по-разному,
> на их создание у мну уже отведено порядка 300 строк кода,
> а на то, чтобы обновить их параметры надо ещё столько же,
> если не больше. =)
Значит что-то с логикой не то.
← →
IrBisoff © (2004-05-16 04:37) [15]
> Значит что-то с логикой не то.
Мне это воспринимать как оскорбление ? ;) В строку у меня может помещаться от одного до пяти лэйблов с разными аттрибутами, это всё связано со многими факторами, другая реализация потребовала бы ещё больших усилий. Если начать это всё хозяйство двигать по форме и ресайзить - не то что писать задолбаюсь, так оно ещё и тормозить начнёт, плюс к тому на форме может находиться в зависимости от обстоятельств разное число лэйблов (от одного до очень большого числа штук ;), не подчищать лишние было бы крайне неумно..
Страницы: 1 вся ветка
Текущий архив: 2004.05.30;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.039 c