Разное
Облака / Clouds
The bast cloud service
Get 20 GB free!!!
Support WebDav.
Show more >>
time-tested cloud storage
Support WebDav.
Последние книги
Самое популярное
Все бесплатно
Все ссылки на файлы, расположенные на страницах сайта, добавлены пользователями и доступны для бесплатного скачивания. За содержание этих файлов администрация сайта ответственности не несет.
Навигация
Вопросы
Подсветить часть текста в DBGrid
Категория: Компоненты
Категория: Компоненты
Как можно проверить, запущена программа с локального диска или из сети
Категория: Интернет и Сети
Категория: Интернет и Сети
Как закачать файл из Интернета
Категория: Интернет и Сети
Категория: Интернет и Сети
Создать таблицу ABS (AbsoluteDB)
Категория: Базы данных
Категория: Базы данных
Как соединить несколько файлов в один
Категория: Текст и строки
Категория: Текст и строки
Перекодировка в DBASE
Категория: Базы данных
Категория: Базы данных
Найти все компьютеры в сети
Категория: Интернет и Сети
Категория: Интернет и Сети
Взять часть URL, которая следует после названия сайта
Категория: Интернет и Сети
Категория: Интернет и Сети
Как произвести поиск файлов во вложенных папках
Категория: Файловая система
Категория: Файловая система
Вывод текста на канву Canvas
Категория: Компоненты
Категория: Компоненты
Delphi - Справочник: Destructor
Destructor
|
type Class declaration ... Destructor Destroy; Override; ... end; |
Ключевое слово (Unit )
|
Определяет метод используемый для уничтожения объекта
|
Описание:
|
Ключевое слово Destructor определяет процедуру деструктора Destroy для класса. При освобождении объекта, вызывается Destructor. Это позволяет объекту освободить память или другие используемые ресурсы, которые он использовал. Обычно деструктора имеет название destroy, но это никак не ограничено. Но будет умно сохранить это название. Директива Override должна быть указана, так как мы отменяем виртуальный метод уничтожения TObject. |
Пример кода: Пример деструктора используемый для освобождения приобретённой памяти
|
// Полный код Модуля. // ----------------------------------------------------------- // Вы должны поместить этот код в модуль с именем Unit1 и с формой // названную Form1, которая имеет событие OnCreate названное FormCreate. unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type // Строка содержащая запись TString = string[10]; // Определение класс контейнера TWords = class private wordCount : Integer; wordsStart : Pointer; function Get(Index: Integer): string; public property GetWord[Index : Integer] : string read Get; published constructor Create(count : integer); Destructor Destroy; override; end; // Сам класс формы TForm1 = class(TForm) procedure FormCreate(Sender: TObject); end; var Form1: TForm1; implementation {$R *.dfm} // Конструктор TWords - формирует массив слова constructor TWords.Create(count: integer); var i : Integer; wordsList : ^TString; begin // Получите памяти для 'count' строк GetMem(wordsStart, count*SizeOf(TString)); // Заполнение этого списка wordsList := wordsStart; wordCount := count; for i := 1 to count do begin wordsList^ := 'Word '+IntToStr(i); Inc(wordsList); end; end; // Деструктор TWords - освобождает память destructor TWords.Destroy; begin // Освобождение памяти, если она получена if wordsStart <> nil then FreeMem(wordsStart); // Всегда вызывайте родительский деструктор после выполнения вашего собственного кода inherited; end; // GetWord функция чтения свойства function TWords.Get(Index: Integer): string; var wordsList : ^TString; begin // Чтение слова по данному индексу, если в диапазоне if (Index >= 1) and (Index <= wordcount) then begin wordsList := wordsStart; Inc(wordsList, Index-1); Result := wordsList^; end; end; // Основная линия кода procedure TForm1.FormCreate(Sender: TObject); var words : TWords; begin // Создание объекта TWords words := TWords.Create(4); // Теперь показываем 2-ое слово в этом объекте ShowMessage('2-ое слово = '+words.GetWord[2]); end; end.
Результат:
|
2-ое слово = Word 2 |
Примечание:
|
В конце деструктора, вы должны вызвать Inherited для вызова родительского деструктора. |