Вобщем такая проблема:
Не очищается память методом Free. Выплевывает ошибку. Код примерно такой:
Код:
1 2 3 4 5 6 7 8 9 10 11 12 13 | 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 );
ClientSocket1 . Socket . SendStream(pict);
pict . free;
|
Причем замечено, что до SendStream поток имеет нормальный размер (числом). А после выполнения SendStream, pict.size уже равен "Access violation at 0009272D1F accessing 00180094".
Код:
1 2 | if ClientSocket1 . Socket . SendStream(pict) then
pict . Free
|
не помогает
Это все дело в цикле, так что если не делать Free, то программа съедает всю оперативу до конца.
Так вот что же происходит с потоком после выполнения метода Socket.SendStream?? Заранее спс
