Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.12.09;
Скачать: CL | DM;

Вниз

Ошибка TStrListEx.DeleteLast ??   Найти похожие ветки 

 
VPBar   (2007-05-26 16:26) [0]

Вопрос вот в чем (для версии 2.58, может в новой это исправлено):
TStrListEx наследуется от TStrList в котором определен метод DeleteLast.
если у нас есть
 SL:TStrListEx
.......
// И мы вызываем
SL.DeleteLast;
.......
То ожидается что удалится последние строка и объект, но на самом деле удаляется только последняя строка.
Это конечно соответствует описанию  KOL, но там же написано "Объект TStrListEx отличается от своего предка TStrList (один из редких случаев в KOL, когда объектный тип наследуется не напрямую от TObj) тем, что имеет свойство Objects, сопоставляющее каждой строке 32-разрядное число, или указатель (фактически, TStrListEx строится как объединение TStrList и TList, и операции над их элементами производятся синхронно)."
А при использовании метода DeleteLast эта синхронность нарушается.
Можно ли такое поведение считать ошибочным?
Вероятно надо перекрыть DeleteLast в TStrListEx?
Например так
procedure TStrListEx.DeleteLast;
begin
 inherited;
 FObjects.Delete( FObjects.fCount-1 );
end;
А лучше (уж если используется наследование) сделать DeleteLast виртуальным, чтобы небыло проблем при присваивании к предку.
SL:TStrList
SL:=NewStrListEx
SL.DeleteLast


 
VPBar   (2007-05-26 16:32) [1]

В 2.62 - эта ошибка тоже присутствует.
Версию 2.63   здесь  http://www.kolnmck.ru/start.shtml не нашел


 
VPBar   (2007-05-26 16:32) [2]

В 2.62 - эта ошибка тоже присутствует.
Версию 2.63   здесь  http://www.kolnmck.ru/start.shtml не нашел



Страницы: 1 вся ветка

Текущий архив: 2007.12.09;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.477 c
15-1194927662
vajo
2007-11-13 07:21
2007.12.09
В Китае наладили выпуск накопителей с функцией кражи паролей


15-1194700737
Kostafey
2007-11-10 16:18
2007.12.09
С днем рождения ! 10 ноября


2-1195214711
timekiller
2007-11-16 15:05
2007.12.09
Проверка на повторы по нодам


11-1179996237
=BuckLr=
2007-05-24 12:43
2007.12.09
ScrollBars в рантайм


2-1194416101
ser_tr
2007-11-07 09:15
2007.12.09
при пустой ячейке выскакивает "is not a valid floating point valu