Логин: Пароль:    Регистрация Всеми возможностями сайта можно пользоваться
только после авторизации.
   Забыли пароль?

Поиск
L



Статистика
u
Пользователи онлайн: нет
Гостей онлайн: 8
Всего онлайн: 8
Зарегистрировано юзеров: 7550
Комментариев на сайте: 670
Новый юзер: dolginaolha



Последние комментарии
c
Amard прокомментировал "Урок 53 - Потоки в Delphi, (часть 1/3)":
Всем привет! В Школе Частных Прорабов Prorab2.ru обучают как сделать дешевый и недорогой фундамент своими руками используя Строительные Нормы и Правила (СНиП), технологии для фундаментов и Технику Безопасности (ТБ) на объекте с помощью одной из лучших онлайн школ в мире ,а также единственной онлайн школы в России и на просторах бывшего СНГ Вы реально научитесь строить Фундамент за пол цены от рыночной стоимости работ – это не шутка, не розыгрыш и не мечта. Фундамент за 50 процентов – это реальность! Недавно я нашел крутую онлайн школу. Мужики реально крутая школа, все объясняют без заумных слов. Все нужно делать заблаговременно и разумно экономно! Там изучают множество тем о фундаментах. Одна из них: [url=https://prorab2.ru/category/fundament]Фундамент из бруса.[/url] До новых встреч!
CarolineWrifs прокомментировал "Урок 3 - Конструкция IF...THEN...ELSE":
[img]https://kapsuly-lipocarnit.ru/files/lipocarnit_1/img/product-head1.png[/img] [url=https://kapsuly-lipocarnit.ru/][img]https://karga.info/wp-content/uploads/2019/02/orig.jpg[/img][/url] Lipocarnit (ЛипоКарнит) - [url=https://kapsuly-lipocarnit.ru/]липокарнит капсулы для похудения цена екатеринбург[/url] для похудения в Екатеринбурге Цена: 990 руб. [url=https://kapsuly-lipocarnit.ru/]lipocarnit отзывы[/url] - Полная конфиденциальность Наименование и назначение товара не указаны на посылке. В соответствии с политикой конфиденциальности мы не передаем информацию третьим лицам. Аудио обзоры нашего магазина Липокарнит (LipoKarnit) - капсулы для похудения - описание Кто такие представители прекрасного пола ради похудения? Часы физических упражнений, строгие диеты, даже липосакция. Но, по мнению большинства врачей, лучше всего получить твердое натуральное средство для похудения с гарантированным эффектом. Среди тех, кто заменяет упражнения и осанку, профессионалы включают продукт для похудения Lipocarnit. По словам производителей, любая капсула бьет избыток жира на клеточном уровне, ускоряя обмен веществ и снижая уровень глюкозы в крови. LipoCarnit превращает жир в энергию и снижает уровень холестерина. Это, если верить словам клиентов, приводит к обещанной и быстрой потере веса. Почему мы набираем вес? Есть много причин, почему мы набираем вес. К ним относятся диетические излишки и фиксированный образ жизни и генетическая предрасположенность. Однако наименее реальным бедствием современной цивилизации является изменение в процессе обмена веществ. Нарушение обмена веществ возникает в результате: отсутствие компонентов, пригодных для обработки жировых клеток; сбой в процессе образования и разложения жира; отсутствие деталей, необходимых для осуществления химических реакций. Начальные признаки избыточного веса Дамы считают, что образования с избыточным весом наверняка не будет недостатка. Однако не только стрелки весов способны говорить о неточном ходе жирового обмена. Сначала вес может не измениться, однако другие симптомы нарушения обмена веществ будут наименее очевидными: апельсиновая корка; храп; постоянный аппетит; слабость; высокое кровяное давление; Боли в спине и суставах. Сказать, что все эти плохие реакции на тело означают заботиться о себе! Помогает ли нам бездействие? Если вам кажется, что лишний вес - это не та проблема, из-за которой вы должны изменить свой обычный образ жизни, вот лишь несколько несоответствий, которые могут привести к избыточному весу и неправильному обмену веществ. : высокое кровяное давление; избыток холестерина; уровень сахара в крови; проблемы с поджелудочной железой; Риск склероза и инфаркта миокарда. Не волнуйтесь, получите естественное и неопасное лечение для контроля жира - капсулы Липокарнит. Липокарнит (Li Капсулы ЛипоКарнит разрушают жировые отложения за счет действия состава природного баланса; Липоевая кислота нормализует уровень глюкозы в крови, очищает и сохраняет печень, ускоряет выделение энергии липидными клетками; Pycinate Pycollinate уменьшает чувство голода, расщепляет жир и нормализует кровяное давление; L-карнитин превращает липиды в энергию, снижает уровень холестерина. Поступление таким образом, чтобы улучшить ум, а не состав, значительно уменьшить избыточный вес. И сразу же для похудения не стоит ограничиваться едой. Продукт «переконфигурирует» организм для максимально быстрого удаления жиров и в то же время не вызывает привыкания или побочных эффектов.

Процедуры для работы с динамическими переменными

Основные процедуры для работы с динамическими переменными приведены ниже.

Dispose Высвобождает память из-под динамической переменной.
Finalize Деинициализирует динамическую переменную.
FreeMem Высвобождает память из-под динамической переменной.
GetMem Создает динамическую переменную, выделяя под нее указанный объем памяти.
Initialize Инициализирует динамическую переменную.
New Создает динамическую переменную.
ReallocMem Перераспределяет память для динамической переменной.
Процедура Dispose( var P: Pointer);

Модуль: System.

Описание:
Процедура высвобождает область памяти, которую использует динамическая переменная P. Значение указателя P в данном случае становится неопределенным. Если функции передан недопустимый указатель, то возникает исключение EInvalidPointer. Обработка ошибок с помощью механизма обработки исключительных ситуаций включается директивой компилятора {$I+}.

Пример:

	type
	   MyString = string[15];
	var
	   P: ^MyString;
	begin
	   New(P);
	   P^:= '01 января 2000г';
	   Dispose(P);
	end;
Процедура Finalize( var V [; Count: Integer] );

Модуль: System.

Описание:
Процедура деинициализирует динамическую переменную, указанную в параметре V. Данная процедура должна использоваться только в тех случаях, когда для высвобождения памяти из-под динамической переменной не используется процедура Dispose. Для объектов глобальных, локальных и динамических переменных при высвобождении памяти с помощью стандартной процедуры Dispose, компилятор генерирует код, завершающий работу с длинными строками, переменными типа Variant и интерфейсами после разрушения переменной. Если память, содержащая не пустые или не инициализированные длинные строки, Variant-переменные или интерфейсы, высвобождается не при помощи процедуры Dispose (например, процедурой FreeMem), то перед высвобождением памяти требуется вызвать процедуру Finalize для того, чтобы закрыть указанную переменную. Процедура Finalize присваивает всем длинным строкам пустое значение, а переменные типа Variant и интерфейсы деинициализирует (устанавливает тип Unassigned). Дополнительный параметр Count может быть определен в тех случаях, когда необходимо высвободить память, из-под нескольких переменных, содержащихся в непрерывном блоке памяти (например, динамически распределенный массив строк) для того, чтобы закрыть все переменные одной операцией. Если переменная, определенная в параметре V не содержит длинных строк, Variant-значений и интерфейсов, то компилятор просто игнорирует вызов процедуры.

Пример:
См. пример к функции FreeMem.

Процедура FreeMem( var P: Pointer [; Size: Integer] );

Модуль: System.

Описание:
Процедура уничтожает переменную, с которой связан указатель P и высвобождает память, занимаемую данной переменной. В необязательном параметре Size указывается объем памяти в байтах, выделенный ранее динамически под переменную. Если после действия процедуры FreeMem, вызвать указатель P, то возникнет ошибка, т.к. указатель имеет неопределенное значение.

Пример:
	var
	   Vf: File;
	   Size: Integer;
	   Buffer: PChar;
	begin
	     AssignFile(Vf, 'work.txt');
	     Reset(Vf, 1);     { Открывает файл work.txt }
	     Size:= FileSize(Vf);     { Определяет размер файла }
	     GetMem(Buffer, Size);     { Создает динамический буфер }
	  try
	     BlockRead(Vf ,Buffer^, Size);     { Читает содержимое файла в буфер }
	   ...
	{ В этом месте должен быть код, использующий буфер }
	   ...
	  finally
	     Finalize(Buffer);
	     FreeMem(Buffer);     { Освобождает память от буфера }
	  end;
	     CloseFile(F);     { Закрывает файл }
	end;
Процедура GetMem( var P: Pointer; Size: Integer );

Модуль: System.

Описание:
Процедура создает динамическую переменную: выделяет блок памяти размером Size байт под переменную, указанную в параметре P, и возвращает указатель на начало данного блока памяти. Параметр P может представлять собой любой тип указателя. Указатель на новую созданную переменную записывается как P^. Если для создания динамической переменной недостаточно памяти, то возникает исключение EOutOfMemory.

Пример:
См. пример к функции FreeMem.

Процедура Initialize( var V [ ; Count: Integer] );

Модуль: System.

Описание:
Процедура инициализирует динамическую переменную. Если динамическая переменная была создана не с помощью процедуры New, а другим способом (например, с помощью процедуры GetMem или процедуры ReallocMem), то после создания переменной, ее необходимо инициализировать процедурой Initialize. При вызове данная процедура обнуляет память, занятую длинными строками Variant-значениями и интерфейсами. Длинным строкам присваивается пустое значение, а для Variant-значений и интерфейсов устанавливается неопределенный тип (Unassigned). Необязательный параметр Count может быть определен, когда память под несколько переменных выделена в непрерывном адресном пространстве. Это позволяет инициализировать все переменные одним вызовом процедуры. Если переменная, определенная в параметре V не содержит длинных строк, Variant-значений и интерфейсов, то компилятор игнорирует данный вызов процедуры и не генерирует ни какого кода.

Процедура New( var P: Pointer );

Модуль: System.

Описание:
Процедура создает новую динамическую переменную, и ассоциирует с ней указатель P. Параметр P может представлять собой любой тип указателей. Размер памяти, выделяемый под переменную, зависит от типа указателя. Новая созданная переменная может быть вызвана как P^. Если для создания динамической переменной недостаточно памяти, то возникает исключение EOutOfMemory. По завершению использования динамической переменной память, выделенную ранее процедурой New, необходимо высвободить вызовом процедуры Dispose.

Пример:
См. пример к функции Dispose.

Процедура ReallocMem( var P: Pointer; Size: Integer );

Модуль: System.

Описание:
Процедура перераспределяет память размером Size байт под динамическую переменную P. При вызове данной процедуры указатель P должен иметь значение nil или должен указывать на динамическую переменную, память под которую была предварительно выделена с помощью процедур GetMem или ReallocMem.Если P = nil, Size = 0, то процедура не производит никаких действий.Если P = nil, а Size <> 0, то процедура распределяет новый блок памяти размером Size и устанавливает указатель P на начало блока. Такой вызов процедуры аналогичен обращению к процедуре GetMem. Если P <> nil, а Size = 0, то процедура высвобождает блок памяти, на который указывает P и устанавливает P = nil. Вызов процедуры с указанными параметрами аналогичен обращению к процедуре FreeMem, но в отличие от FreeMem процедура ReallocMem очищает указатель.

Вот и всё, Удачи!

Источник: www.thedelphi.ru
Автор: Савельев Александр
Опубликовано: 7 Декабря 2014
Просмотров:


Зарегистрируйтесь или авторизуйтесь, чтобы добавлять комментарии.