Показать сообщение отдельно
  #7  
Старый 12.12.2011, 12:54
leonw leonw вне форума
Прохожий
 
Регистрация: 12.01.2007
Сообщения: 23
Репутация: 10
Сообщение делает только один скрин

прога делает только один скрин и все, а дальше только файл растет и растет. делаю вставку AFileStream.Free; и пишет что фалй принят не доконца
Код:
procedure TForm1.IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
  ABinding: TIdSocketHandle);
var
  Buffer: array of Byte;
  Len: Integer;
begin

  Len:=AData.Size;
  SetLength(Buffer, Len);
  Memo1.Lines.Add(IntToStr(Len));

  if FileStreamSize=-1 then
begin
    AData.ReadBuffer(Buffer[0], Len);
    FileStreamSize:=PInteger(@Buffer[0])^;
    memo2.Lines.Add('111111='+inttostr(FileStreamSize));
end else
  begin
    Len:=AData.Read(Buffer[0], Len);
    AFileStream.Write(Buffer[0], Len);
  end;

 if len=0 then begin
MemStream:= TMemoryStream.Create;
jpg:=TJPEGImage.Create;
try
MemStream.LoadFromStream(AFileStream);
MemStream.Position := 0;
jpg.LoadFromStream(MemStream);
Image1.Picture.Graphic := jpg;
finally
MemStream.Free;
jpg.Free;
 if bsSkinEdit1.Text='0' then IdUDPClient1.Send('screens')
 else IdUDPClient1.Send('endscreens');
end;end;end;

но если сделать отдельной кнопкой AFileStream.Free; то скрины делаються нормально
Ответить с цитированием