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

Вниз

Освобождение ресурсов   Найти похожие ветки 

 
Egen   (2002-02-07 13:03) [0]

Хай ол. поможите плиз. есть функция возвращающая TStrings.

function CreateList: TStrings;
begin
Result := TStringList.Create;
Result.Add("111");
...
end;


У меня вопрос. нужно ли в этом случае освобождать память занимаемую Result.
или может результат лучше в параметр запихать.


 
Digitman ©   (2002-02-07 13:08) [1]

нужно обязательно.


 
Egen   (2002-02-07 13:19) [2]

и как, если не секрет?
если result.free в конце написать, то возвращается пустой список.
что делать тада?


 
Johnmen ©   (2002-02-07 13:41) [3]

Ты хоть смысл своей ф-ии сам понял ?
function CreateList: TStrings;

то есть "создать" , а не "убивать", посему убивай в др.месте...


 
BlankAlex ©   (2002-02-07 13:42) [4]

Я в таких случаях создавал списки и освобождал их в вызывающей процедуре, а в вызываемой заполнял их значениями


 
Egen   (2002-02-07 14:02) [5]

Вот именно создать
Функцию я вызываю так ComboBox.Items.Assign(CreateList)
и как мне в этом случае освободить?


 
Egen   (2002-02-07 14:02) [6]

Вот именно создать
Функцию я вызываю так ComboBox.Items.Assign(CreateList)
и как мне в этом случае освободить?


 
BlankAlex ©   (2002-02-07 14:08) [7]

А что перед этим нельзя прокреатить list, чтобы потом же его сразу и уничтожить после assign


 
Дмитрий ©   (2002-02-07 14:10) [8]

>>Egen
Call Assign to copy the properties or other attributes of one object from another
Assign - копирует данные

Очень удобно манипулировать строками, на худой конец.
var a: string;
var b: TStringList;
...
a:="First str"#13#10"SecondStr";
b.Text:=a;
b.Add("Third str");
a:=b.Text;

т.е. результат возвращать в виде строк, разделенных \r\n


 
Egen   (2002-02-07 14:25) [9]

все понятно. как я и предполагал придется делать примерно так
procedure CreateList(var Strings)
...
CreateList(ComboBox.Items) или что-то в этом роде. Это правда мне не очень нравится т.к. в этом случае придется учитывать возможность добавления в лист. а не его замена. Ну с этим я справлюсь. Хотелось просто попроще. ВОТ.
В любом случае всем спасибо. Благодарю за советы. :)


 
Egen   (2002-02-07 14:48) [10]

Хотя нет лучше наверно воспользоваться вариантом Дмитрия ©.
>>Дмитрий ©. Отдельное БААЛЬШООООООЕЕЕЕ СПАААСИИБААААА.
Я про эти пропертя и забыл совсем. Ламер, что поделаешь.

>> all Извините за глупые вапросы.


 
Юрий Зотов ©   (2002-02-07 15:49) [11]

> Egen

И какие проблемы?

Если не хотите менять Вашу CreateList - так и не меняйте. А вызывайте ее, например, так:

with CreateList do
try
ComboBox.Items.Text := Text
finally
Free
end;



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

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

Наверх




Память: 0.49 MB
Время: 0.011 c
1-79333
maxi
2002-02-08 03:06
2002.02.25
TListBox глючит, а размер проги непрерывно растёт !!!!


1-79385
IronHawk
2002-02-05 16:19
2002.02.25
Как отловить САМЫЙ ПЕРВЫЙ запуск программы ?


6-79407
Дима
2001-12-06 14:39
2002.02.25
Получение IP адресов и имён соответствующих компьютеров


4-79513
ev
2001-12-15 19:24
2002.02.25
Как посмотреть переменные в другой программе?


3-79259
Delirium
2002-01-30 15:29
2002.02.25
XMLQuery или XMLTable