Уже накипела эта проблема.. При использовании некоторых методов TMemoryStream вылетают AV или Invalid Pointer Operation. Выяснил, что ошибки вылетают на местах очистки потока, или вызова деструктора (free,destroy,clear). Естесственно, я не всё это сразу использовал, а пробовал по очереди. Например, в таком участке кода возникает эта проблема (fsz описан глобально в unit3):
procedure Thread3.Execute;
begin
Try
form3.serverSocket2.socket.connections[nc2].SendText('#X'+xname+'#0'+'Size:'+IntToStr(fsz.Size)+ '#0');
fsz.Position:=0;
form3.serverSocket2.socket.connections[nc2].sendstream(fsz);
stop:=false;
form3.statusbar1.panels[1].text:='Второй канал свободен';
form3.timer1.enabled:=true;
fsz.Clear; //зло
Finally
end;
end;
fsz.Clear; //зло