Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как освободить объект после использования? Encoding 
V
    Опции темы
oleg2s
Дата 12.11.2012, 11:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 12.5.2012

Репутация: 1
Всего: 1



Проверяю утечки памяти. Для этого вставил строку ReportMemoryLeaksOnShutdown := True;
После закрытия формы выводится сообщение:

An unexpected memory leak has occurred. The unexpected small block leaks are:
21 - 28 bytes: TMBCSEncoding x 1

Анализ кода показал, что это возникает из-за следующих строчек:

Код

procedure TForm1.FormCreate(Sender: TObject);
Var Encoding: TEncoding;

Begin
ReportMemoryLeaksOnShutdown := True;

Encoding := TEncoding.Create;
Encoding.GetEncoding(1251);
Encoding.Free;
Encoding := Nil;
End;


Как уничтожить объект Encoding?
PM MAIL   Вверх
Illusion Dolphin
Дата 12.11.2012, 12:02 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1198
Регистрация: 3.5.2003

Репутация: 5
Всего: 63



Подсказка в сырцах:

Код

class function TEncoding.GetEncoding(CodePage: Integer): TEncoding;
begin
  case CodePage of
    1200: Result := TUnicodeEncoding.Create;
    1201: Result := TBigEndianUnicodeEncoding.Create;
    CP_UTF7: Result := TUTF7Encoding.Create;
    CP_UTF8: Result := TUTF8Encoding.Create;
  else
    Result := TMBCSEncoding.Create(CodePage);
  end;
end;



--------------------
В мире всего две бесконечности: вселенная и человеческая глупость... На счёт вселенной я не уверен.
Шифрование и организация фотографий - Photo Database 4.5
PM MAIL WWW ICQ   Вверх
oleg2s
Дата 12.11.2012, 12:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 12.5.2012

Репутация: 1
Всего: 1



Наверное для кого-то эта подсказка очевидна, но что делать, если нет?
PM MAIL   Вверх
Illusion Dolphin
Дата 12.11.2012, 12:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1198
Регистрация: 3.5.2003

Репутация: 5
Всего: 63



TEncoding.GetEncoding(1251); возвращает объект кодировки. Сам объект создавать вручную (TEncoding.Create;) не надо. Те. что-то вроде:
Код

Encoding := TEncoding.GetEncoding(1251);
...
FreeAndNil(Encoding);



--------------------
В мире всего две бесконечности: вселенная и человеческая глупость... На счёт вселенной я не уверен.
Шифрование и организация фотографий - Photo Database 4.5
PM MAIL WWW ICQ   Вверх
oleg2s
Дата 12.11.2012, 13:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 12.5.2012

Репутация: 1
Всего: 1



Результат тот-же. :(

Добавлено через 3 минуты и 59 секунд
Прошу прощения!
Все получилось, большое спасибо!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

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

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0483 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.