Страница 1 из 1

Libcurl progress

Добавлено: 07 Июль 2025, 16:26
gopstop2007
Вижу есть прогресс в curl.ReadFile - curl::ProgressDataProcType
Как его использовать? Не нашел в примерах, буду благодарен, если подскажите примером.

Спасибо за внимание

Libcurl progress

Добавлено: 07 Июль 2025, 16:46
Дед Пахом
Лучше использовать переопределённый метод XFerInfo, есть в примерах, если коротко, то как-то так:

Код: Выделить всё

curl                 CLASS(TCurlHttpClass)
XFerInfo               PROCEDURE(REAL dltotal, REAL dlnow, REAL ultotal, REAL ulnow), LONG, PROC, DERIVED
                     END

curl.XFerInfo     PROCEDURE(REAL dltotal, REAL dlnow, REAL ultotal, REAL ulnow)
nRes                  LONG, AUTO
  CODE
  IF dlTotal
      ?ProgressDownload{PROP:Progress} = dlnow * 100.0 / dltotal  !-- we know actual file size Download:FileSize
      ?lblBytesRead{PROP:Text} = 'Bytes read: '& dlnow &' of '& dltotal
      DISPLAY(?ProgressDownload)
  ELSE
      ?ProgressDownload{Prop:Hide} = TRUE
      ?lblBytesRead{PROP:Text} = 'Bytes read: '& dlnow
  END
  YIELD
  
  nRes = PARENT.XFerInfo(dltotal, dlnow, ultotal, ulnow)
  RETURN nRes