Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.11.18;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.009 c
3-59075
sky3d
2002-10-30 13:13
2002.11.18
String Code Generation (для знатоков PL_SQL)


1-59267
AlexxxKIROV
2002-11-07 13:56
2002.11.18
Вопрос по Delphi 6...


4-59513
Novichek
2002-10-05 21:33
2002.11.18
Можно ли развернуть/свернуть все проги нетрогая свою?


14-59421
Esipenko
2002-10-31 12:10
2002.11.18
Пароль на вход в Win98


7-59462
^SANYA
2002-09-15 19:55
2002.11.18
Перехват смены раскладки клавиатуры...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский