procedure TMain.BufferFull(Sender: TObject; Data: Pointer; Size: Integer); var NewSize: Integer; Stream: TMemoryStream; Frame: TCommandFrame; begin Move(Data^, ACMC.BufferIn^, Size); NewSize := ACMC.Convert; Stream := TMemoryStream.Create; Stream.Size := NewSize; Frame.Len := NewSize; Frame.Command := A_START; Frame.Id := FRAME_ID; Stream.WriteBuffer(Frame, SizeOf(TCommandFrame)); Stream.WriteBuffer(ACMC.BufferOut^, NewSize); Stream.Position := 0; SendStream(Socket, Stream); Stream.Free; end;