уж много раз на форуме обсуждался вопрос о TCP_client. Когда еще на Delphi писал помню что у него были свойства по которим можно было узнать количество переданных байт от общего объема. А в HiAsm их почему то не вывели в точки. Будь такой выход HiTCP_client решилось бы сразу две задачи:
можно было бы узнать о завершении передачи данных и прикрутить ProgressBar.
Из за отсутствия таковых мне приходтся нагромождат кучу кода для проверки передачи данных и т.п.
Этот топик читают: Гость
Ответов: 542
Рейтинг: 12
|
|||
карма: 0 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
afandi писал(а): помню что у него были свойства по которим можно было узнать количество переданных байт от общего объемане было такого |
|||
карма: 27 |
|
Ответов: 542
Рейтинг: 12
|
|||
Не это?
code_11446.txt или эти
|
|||
карма: 0 |
| ||
файлы: 1 | code_11446.txt [207B] [483] |
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
это событие, которое возвращает принятые данные и их длинну. Ни о каком общем объеме речь там не идет. В HiAsm же при передачи потока(Stream) объем данных передается в первую очередь и прогресс там можно вывести. Во всех иных случаях это задача ложится полностью на плечи разработчика
|
|||
карма: 27 |
| ||
Голосовали: | afandi |
Ответов: 542
Рейтинг: 12
|
|||
Dilma писал(а): и прогресс там можно вывести |
|||
карма: 0 |
|
Ответов: 1161
Рейтинг: 160
|
|||
afandi писал(а): каким образом точка onProgress |
|||
карма: 0 |
| ||
Голосовали: | afandi |
Ответов: 542
Рейтинг: 12
|
|||
точка он прогресс ничего "не выдала". может потому что у меня передаваемые данные всего пару килобайт?
|
|||
карма: 0 |
|
Ответов: 590
Рейтинг: 19
|
|||
afandi писал(а): может потому что у меня передаваемые данные всего пару килобайт?не... у меня и с файлами ни чего не выдает... |
|||
карма: 0 |
|
Ответов: 542
Рейтинг: 12
|
|||
А Dilma, сказал что можно .... вывести
|
|||
карма: 0 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
она была не реализована, см. SVN
|
|||
карма: 27 |
|
Ответов: 542
Рейтинг: 12
|
|||
В скаченном SVN только файл TCP.pas да и тот размером меньше чем оригинал из пакета.
Но все же заменил взяв из SVN, перезапустил Хасм. Прогресс бар так и не заработал. |
|||
карма: 0 |
|
Ответов: 3851
Рейтинг: 159
|
|||
afandi,
Dilma писал(а): на плечи разработчика |
|||
карма: 0 |
|
Ответов: 590
Рейтинг: 19
|
|||
Андрей. писал(а): как вариант - можно отправлять сообщение кусочками и уже по мере их передачи изменять положение прогресса..Помойму это не очень удобно... Можно попробовать таким образом... получаем размер файла, а при передачи его через TCP, как нибудь отлавливаем кол-во полученных байт... и сверяем... но нужно, чтобы перед этим еще на TCP, поступили данные о размере файла... |
|||
карма: 0 |
|
Ответов: 3851
Рейтинг: 159
|
|||
EcsTasY писал(а): Помойму это не очень удобно...EcsTasY писал(а): как нибудь отлавливаем кол-во полученных байт... |
|||
карма: 0 |
|
Ответов: 542
Рейтинг: 12
|
|||
Можно наверное сделать и относительную шкалу.
Например путем запоминания отношения размера переданного файла на время передачи т.е. скорость. а при последующей передачи зная скорость канала и объем передаваемого файла рисовать ProgressBar по этим параметрам. И при каждое очередной передаче усредняя скороть передачи. Вот только как узнать точно о завершении передачи данных? Может быть после завершения передачи в точку onError выводить "0" как признак корректной передачи данных? |
|||
карма: 0 |
|