|
#1
|
||||
|
||||
Результат функции
Добавил к TStringList функцию
Код:
type TMyStrList=class(TStringList) public function AllNames:TStrings; end; ------------------------------ implementation function TMyStrList.AllNames:TStrings; var i: Byte; begin Result:= TStringList.Create; for i:=0 to Count-1 do Result.Append(Names[i]); end; ------------------------------ |
#2
|
||||
|
||||
Скорее всего так и будет висеть, пока приложение не завершится. Беда еще в том, что новый экземляр TStringList будет добавлятся всякий раз при вызове этой функции. Вобщем, на мой взгляд крайне неудачное решение, гарантирующее утечки памяти.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
Этот пользователь сказал Спасибо Страдалецъ за это полезное сообщение: | ||
Помидоркин (06.01.2015)
|
#3
|
||||
|
||||
Используйте IStrings.
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
Этот пользователь сказал Спасибо M.A.D.M.A.N. за это полезное сообщение: | ||
Помидоркин (06.01.2015)
|
#4
|
||||
|
||||
Цитата:
Цитата:
Либо пытаться сделать через свойство, которое теоретически должно быть убито при разрушении TMyStrList, либо через процедуру, либо не строить из себя умника и прописать тот-же цикл непостредственно в нужном обработчике. |
#5
|
||||
|
||||
Если писать на дельфи версии >= 2009, то там можно запользовать делегированный метод и забыть о всяких велосипедных ф-ях, возвращающих TStrings.
IStrings — наверное в библиотеке Spring есть. P.S. Можно при наследовании от TStrings, добавить интерфейс, дельфи автоматический сборщик мусора запользует. — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию Последний раз редактировалось M.A.D.M.A.N., 06.01.2015 в 23:00. |