Кент Рейсдорф. BORLAND C++BUILDER. Раздел 4
Кент Рейсдорф. BORLAND C++BUILDER. Страница 391
Вам может потребоваться изменять курсоры в своих приложениях по многим причинам: для вывода курсора ожидания (песочные часы), специальных курсоров в своей графической программе или для реализации справочного курсора.
Теперь рассмотрим два типа курсоров, которые вы можете использовать в своих приложениях.
Загрузка и использование базовых курсоров
Windows предоставляет несколько встроенных курсоров, которые вы можете использовать в своем приложении. VCL добавляет к ним еще несколько курсоров. Вы можете использовать эти базовые курсоры в любой момент.
Одной из наиболее очевидных причин замены курсора является необходимость выполнения длительного процесса. Считается плохим стилем не информировать пользователя о том, что программа занята выполнением некоторой задачи. Именно для таких случаев Windows предоставляет вам курсор песочных часов (Windows называет его курсором ожидания). Предположим, например, что в вашем приложении есть цикл обработки, который мог бы занять длительное время. Тогда вы можете сделать что-нибудь вроде следующего:
Поскольку вы не всегда знаете, какой курсор использует ваше приложение в настоящий момент, имеет смысл сохранять текущий курсор перед каждым изменением свойства Cursor. Закончив работу с данным курсором, вы всегда сможете восстановить старый курсор.
Вы можете, конечно, заменить курсор отдельно взятого компонента. Например, программа рисования могла бы менять курсор рабочей области в соответствии с текущим инструментом рисования. В этом случае вам не нужно менять курсор для всего объекта Screen, поскольку курсор должен снова принимать вид стрелки при перемещении в оперативную панель, строку состояния или любой другой компонент, находящийся в форме. В этом случае вы должны установить курсор только для того компонента, который представляет рабочее окно вашего приложения: