Изменение курсора и автоматическое восстановление при выходе из метода

Не знаю как у вас, а у меня коде (vcl приложение) полным-полно таких конструкций:

var
tmpOldCursor: TCursor;
begin
tmpOldCursor := Screen.Cursor;
try
Screen.Cursor := crHourglass;
// код который может работать относительно долго
// например, выполнять запрос в БД
finally
Screen.Cursor := tmpOldCursor;
end;
end;

И мне это надоело. По двум причинам:

увеличение размера модулей — по 8 строк кода на каждый такой случай

разбухание секции uses, ведь чтобы это работало нужно в каждый модуль работающий с курсором добавить uses Forms, Controls;

Поэтому давайте уже воспользуемся механизмом подсчёта ссылок в интерфейсах, и реализуем маленький класс избавляющий нас написания лишнего кода. Так чтобы вышеприведённый пример можно было упростить до 1й…

[[ This is a content summary only. Visit my website for full links, other content, and more! ]]

Читать на сайте автора.