Delphi7检测到异常类 EAccessViolation,异常信息:'Access violation at address 0047D5C7 in module

Delphi7检测到错误类 EAccessViolation,错误信息:'Access violation at address 0047D5C7 in module
工程 Project1.exe 检测到错误类 EAccessViolation,错误信息:'Access violation at address 0047D5C7 in module 'Project1.exe'.Read of address 00000068'.进程中止.使用单步或运行继续运行

调试运行的时候出现这样的错误,把那段代码贴出来求大伙帮看看是怎么回事,我是新手,不要骂我笨啊
分不多,如果成功解决的话再加分,谢谢各位了

************************错误代码*************************************************
Function TForm1.SendToServer(AThread:TIdPeerThread;Cmd:String): Boolean;
var
  MyStream: TMemoryStream;
  i:integer;
begin
  MyStream:=TMemoryStream.Create;
  try
  MyStream.Write(Cmd[1],Length(Cmd));
  MyStream.Position:=0;
  i:=MyStream2.size;
  AThread.Connection.WriteLn(inttostr(i)); //提示就是在这里有错误
  AThread.Connection.WriteStream(MyStream); //这句也和上面的一样有错误
  Result := True;
except
  AThread.Connection.Disconnect;
  AThread.Terminate;
  MyStream.Free;
  Result := False;
  end;
  MyStream.Free;
end;
**********************************************************************************
procedure TForm1.TCPServer1Execute(AThread: TIdPeerThread);
var
  MyStream: TMemoryStream;
begin 
MyStream:=TMemoryStream.Create;
  try
  RecCMD:=AThread.Connection.ReadLn();
  except
  Exit;
  end;

case strtoint(RecCMD) of
  011:begin
  if ReadSeverStream(AThread,TempStr) then 
  begin
  if TempStr='返回数据成功' then
  AThread.Connection.WriteLn('CMD012'); //这句话放在这里就好使,可以成功发送出去数据
  end;
  end;

  end;
end;

------解决方案--------------------
楼主的程序本身就有问题
try 

except 
.......
MyStream.Free; 
.......
end; 
MyStream.Free; 
如果出现异常,那么MyStream就会被再次释放,av错误!


另外不知道MyStream2是哪里来的

AThread.Connection.WriteLn(inttostr(i));
AThread.Connection.WriteStream(MyStream); //
这2句本身没有错,很有可能是Connection已经无效