Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

Курс видеоуроков КРЭКЕРСТВО + ПРОГРАММИРОВАНИЕ 2017
(актуальность: июнь 2017)
Свежие инструменты, новые видеоуроки!

  • 400+ видеоуроков
  • 800 инструментов
  • 100+ свежих книг и статей

УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

БОЛЬШОЙ FAQ ПО DELPHI



Освобождение записей

Для начала необходимо привести объект к нужному типу, например, так:


 var
 i: integer;
 begin
 ...
 for i := 0 to MyList.Count - 1 do
 dispose(PMyRecord(MyList[i]));
 MyList.Free;
 end;
 
 

или


 begin
 
 for i := 0 to MyList.Count - 1 do
 dispose(PMyRecord(MyList.items[i]));
 MyList.Free;
 
 end;
 

Items - свойство по умолчанию, поэтому вам нет необходимости определять это, хотя обратное не помешает.

Теперь можно заняться созданием работоспособной и полезной функцией. В форме:


 var
 p : ^mystruct;
 begin
 new(p);
 ...
 dispose(p);
 end;
 

операторы new() и dispose() в точности соответствуют процедурам getmem() и freemem(), за исключением того, что компилитор распределяет количество байт под размер структуры, на которую ссылается переменная-указатель. По этой причине указатель должен быть типизированным указателем, и следущий код неверен:


 var
 p : pointer;
 begin
 new(p);
 end;
 

, поскольку невозможно установить размер памяти, на которую должен ссылаться указатель. С другой стороны, если вы используете getmem() и freemem(), вы можете распределять байты для нетепизированного указателя, например:


 var
 p : pointer;
 begin
 getmem( p, 32767 );
 ...
 freemem( p, 32767 );
 end;
 




<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ



Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS