![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Освобождение ресурсов
Egen © (2002-02-07 13:03:00)Хай ол. поможите плиз. есть функция возвращающая TStrings.
function CreateList: TStrings;
begin
Result := TStringList.Create;
Result.Add("111");
...
end;
У меня вопрос. нужно ли в этом случае освобождать память занимаемую Result.
или может результат лучше в параметр запихать.
Юрий Зотов (2002-02-07 15:49:00) [1]> Egen
И какие проблемы?
Если не хотите менять Вашу CreateList - так и не меняйте. А вызывайте ее, например, так:
with CreateList do
try
ComboBox.Items.Text := Text
finally
Free
end;
Egen (2002-02-07 14:48:00) [2]Хотя нет лучше наверно воспользоваться вариантом Дмитрия ©.
>>Дмитрий ©. Отдельное БААЛЬШООООООЕЕЕЕ СПАААСИИБААААА.
Я про эти пропертя и забыл совсем. Ламер, что поделаешь.
>> all Извините за глупые вапросы.
Egen (2002-02-07 14:25:00) [3]все понятно. как я и предполагал придется делать примерно так
procedure CreateList(var Strings)
...
CreateList(ComboBox.Items) или что-то в этом роде. Это правда мне не очень нравится т.к. в этом случае придется учитывать возможность добавления в лист. а не его замена. Ну с этим я справлюсь. Хотелось просто попроще. ВОТ.
В любом случае всем спасибо. Благодарю за советы. :)
Дмитрий (2002-02-07 14:10:00) [4]>>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
BlankAlex (2002-02-07 14:08:00) [5]А что перед этим нельзя прокреатить list, чтобы потом же его сразу и уничтожить после assign
Egen (2002-02-07 14:02:00) [6]Вот именно создать
Функцию я вызываю так ComboBox.Items.Assign(CreateList)
и как мне в этом случае освободить?
Egen (2002-02-07 14:02:00) [7]Вот именно создать
Функцию я вызываю так ComboBox.Items.Assign(CreateList)
и как мне в этом случае освободить?
BlankAlex (2002-02-07 13:42:00) [8]Я в таких случаях создавал списки и освобождал их в вызывающей процедуре, а в вызываемой заполнял их значениями
Johnmen (2002-02-07 13:41:00) [9]Ты хоть смысл своей ф-ии сам понял ?
function CreateList: TStrings;
то есть "создать" , а не "убивать", посему убивай в др.месте...
Egen (2002-02-07 13:19:00) [10]и как, если не секрет?
если result.free в конце написать, то возвращается пустой список.
что делать тада?
Digitman (2002-02-07 13:08:00) [11]нужно обязательно.