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

Вниз

Как идеологически правильно?   Найти похожие ветки 

 
deffer   (2002-11-06 18:24) [0]

Функция (мною написанная)

getObjectsByMask(mask:string):TStrings

Формирует список строк и возвращает как TStrings

ts:=TStringList.create;
.... // заполняем строками, соответствующими маске
result:=ts;

"Пользователи" данной функции использую результат только для отображения его в TListBox-ах (и прочих списках).

Кто должен разрушать созданный в моей функции список? Учитывая, что разрушать надо не перед завершением приложения, а как только объект(список) больше не нужен (сразу после заполнения listBox-ов)? Ну как-то неправильно, если разрушать будет та функция, которая вызывала getObjectsByMask. А как иначе -- не представляю...


 
Marcus   (2002-11-06 18:32) [1]

Дело вкуса, на самом деле. Хотя мне больше нравится так:
ts:=TStringList.create;
try
getObjectsByMask(ts);
// что-то делаем, н-р, заполняем ListBox
finally
ts.Free;
end;

Конструкция try-finally гарантирует, что не будет утечек памяти, какие бы исключения не выскочили в процессе обработки строк


 
down   (2002-11-06 18:35) [2]

можно возвращать не TStrings, а TStrings.Text:
ListBox.Items.Text := get...



 
oomneeq ©   (2002-11-06 19:11) [3]

imho не заморачиваться заботами о разрушении можно не создавая обекты внутри функций.
в описаном случае можно передавать TStrings(TStringList) в процедуру параметром, а процедура соответственно предполагает наличие уже созданного объекта

getObjectsByMask(mask:string;Items:TStrings);
а вызвать так
getObjectsByMask(mask,ListBox.Items);









 
Alex4444444444   (2002-11-06 19:30) [4]

A ne luchshe


procedure BlaBla(mask: something; Dest: TStrings);


i potom


BlaBla(mask, ListBox.Items);


T.e., kto ego sozdaet, tot i razrushaet (esli voobshe nuzhno sozdavat").



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

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

Наверх




Память: 0.47 MB
Время: 0.025 c
8-59291
login2
2002-07-30 11:18
2002.11.18
Работа с палитрой


1-59223
Ghost!
2002-11-06 16:20
2002.11.18
тайна покрытая мраком


14-59373
Стрел
2002-10-29 23:22
2002.11.18
А нет ли здесь где-нибудь объяв О РАБОТЕ (постоянной)???


7-59446
Мак
2002-09-18 05:26
2002.11.18
Помогите !!!


14-59383
Феликс
2002-10-22 21:10
2002.11.18
Вот бы пример.