Показать сообщение отдельно
  #1  
Старый 12.01.2010, 08:13
Midmal Midmal вне форума
Прохожий
 
Регистрация: 22.08.2009
Сообщения: 41
Репутация: 10
Вопрос Проблемы при передаче изображения

Кто знает, "почему кода я передаю изображение из объекта "Image" от "серверной программы" на "клиентскую" в объект "Image" или на оборот, в ответ приходит не само изображение а чёрный квадрат"?
Вот исходный код:
Код:
//Сегмент программного кода для отправки данных в потоке:
var
  MemoryStream: TMemoryStream;  //Переменная потока памяти
begin
  MemoryStream := TMemoryStream.Create;  //Создаём поток
  try
    MemoryStream.Position := 0;  //Число байт от начала и конца потока
    Image1.Picture.BitMap.SaveToStream(MemoryStream);  //Заносим данные в поток
    MemoryStream.Position := 0;  //Число байт от начала и конца потока
    Socket.SendStreamThenDrop(MemoryStream);  //Отправка данных
  except
    MemoryStream.Free;  //Очистка потока
  end;
end;

//Сегмент программного кода для принятия данных из потока:
const
  MAX_BUF_SIZE = $4095;  //Константа буффера
var
  Int: Integer;  //Переменная интервала
  MemoryStream: TMemoryStream;  //Переменная потока памяти
  Buffer: array [0..MAX_BUF_SIZE] of Char;  //Переменная буффера
begin
  Int := Socket.ReceiveLength;  //Устанавливаем длину потока в байтах
  MemoryStream := TMemoryStream.Create;  //Создаём поток
  try
    MemoryStream.Position := 0;  //Число байт от начала и конца потока
    Socket.ReceiveBuf(Buffer, Int);  //Принимаем данные в буффер
    MemoryStream.WriteBuffer(Buffer, Int);  //Записываем поток в буффер
    MemoryStream.Position := 0;  //Число байт от начала и конца потока
    Image1.Picture.BitMap.LoadFromStream(MemoryStream);  //Загружаем полученные данные
  except
    MemoryStream.Free;  //Очистка потока
  end;
end;
Помогите пожалуйста не как не могу понять что тут не так, вроде бы всё правильно...
Ответить с цитированием