Delphi. Добавляем пользовательские события на примере отправки файла чанками

Понадобилось отслеживать прогресс отправки файла чанками. Сколько байт отправлено, сколько чанков и так далее. Что это даст? Можно будет делать прогресс бар, в котором будем отслеживать сколько байт успешно отправлено на сервер. В данном посте изложу только идею, с элементами кода, как это можно сделать. Вот примерно так выглядит результат…

1

Думал ,думал как это сделать. Пришел к мысли, что лучший способ сделать это через события. В итоге, действовал по аналогии с компонентами Indy, сделал 3 события

Есть у меня центральный модуль по отправке файла чанками

Оформил данные события прямо в нём. Для начала объявил процедурный тип

Далее в Private секции основного класса TSendFileInChunks объявил 3 поля

В public объявил свойства для вызова извне

Далее, в соответствующих частях кода объявил места, где должны срабатывать события, если они ассоциированы

После чего, при создании экземпляра класса присваиваю внешний обработчик для события OnUploadInChunks

Ну а сам обработчик объявил вот так…

В результате, при тестировании получаем вот такой результат

1

 

by Stanislav_Panteleev

Добавить комментарий