Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Интернет и сети
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 12.05.2009, 18:28
dEEmS dEEmS вне форума
Прохожий
 
Регистрация: 12.05.2009
Сообщения: 3
Репутация: 10
По умолчанию TmemoryStrea​m и ClientSocket

Вобщем такая проблема:
Не очищается память методом Free. Выплевывает ошибку. Код примерно такой:
Код:
MyJpeg.Assign(bmp1);
myjpeg.CompressionQuality:=90;
myjpeg.Compress; 

pict:=Tmemorystream.Create;
pict.Position:=0;
myjpeg.SaveToStream(pict) ;
pict.Position:=0; 

ClientSocket1.Socket.SendText('Size:'+inttostr(pict.Size)+#0);
//если поставить pict.free сюда, то выполнится нормально.
ClientSocket1.Socket.SendStream(pict); //тут отправляется все ок.
pict.free; //а вот тут уже не срабатывает
Причем замечено, что до SendStream поток имеет нормальный размер (числом). А после выполнения SendStream, pict.size уже равен "Access violation at 0009272D1F accessing 00180094".

Код:
if ClientSocket1.Socket.SendStream(pict) then
pict.Free
не помогает

Это все дело в цикле, так что если не делать Free, то программа съедает всю оперативу до конца.

Так вот что же происходит с потоком после выполнения метода Socket.SendStream?? Заранее спс
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 10:57.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025