ПредишенСледващото

Ако знаете, че функциите в Делфи могат да се върнат всяка стойност на обекта, а TStringList или TButton. Вие също трябва да се знае, че тя трябва да се използва много внимателно.

Кой трябва да освободи паметта?

В Делфи за Win32, всеки обект, създаден ръчно, ръчно, за да бъдат освободени. Толкова е просто. Ако не се освободи паметта на обекти, които сте създали, програмата ви в крайна сметка взема всички Windows памет и видите съобщение за нарушения на Acess грешка

Ето една проста функция, която връща Delphi обект - TStringList.

Тя изглежда много проста. Забележка: Тъй като функцията връща TStringList. и променливата е имплицитно обявен във всяка функция - резултат е променлива и там TStringList.

Освен това, когато излезете от функцията, можете да създадете TStringList обект. не се използва в паметта. Някой трябва да освободи обекта, преди да попълните заявката си.

Тъй като в повечето случаи те нарека функция, когато имате нужда от резултата, GetStringList ще се нарича от друга част на кода:

Това е, което е важно: ние имаме променлива от тип TStringList ( "SL"). която получава функцията резултат GetStringList. прави нещо с него и най-накрая изтрива списъка от паметта, като по този начин предотвратява изтичане на памет.

Внимание: когато функцията връща инстанция на обект, винаги се уверете, че обектът ще бъде освободен, когато вече не е нужен!

Забележка: TStringList не се нуждае от собственик, който ще бъде създаден. За обекти, които се нуждаят от собственик, собственик е отговорен за самия обект и да го унищожи!

Свързани статии

Подкрепете проекта - споделете линка, благодаря!