Кент Рейсдорф. BORLAND C++BUILDER. Раздел 3
Кент Рейсдорф. BORLAND C++BUILDER. Страница 390
Управление курсором — это прерогатива объекта Screen. Все доступные вам курсоры содержатся в свойстве Cursors объекта Screen. Обратите внимание, что имя этого свойства — Cursors, и это не то же самое, что свойство Cursor, рассмотренное в предыдущем абзаце. Свойство Cursors является массивом, который содержит список доступных приложению курсоров, a Cursor — это свойство, которое используется для отображения определенного курсора. Хотя поначалу эти имена можно путать, вы достаточно быстро с ними освоитесь. Все, что для этого нужно — небольшой опыт практической работы с курсорами.
Windows содержит несколько встроенных курсоров, которыми вы можете пользоваться в своих приложениях. К этим встроенным курсорам VCL добавляет несколько собственных типов курсоров. Все вместе эти курсоры называются базовыми курсорами (stock cursors — курсоры, имеющиеся в наличии). С каждым из базовых курсоров связана именованная константа. Например, курсор в виде стрелки назван crArrow, курсор в виде песочных часов — crHourglass, а курсор перетаскивания — crDrag. Все эти курсоры хранятся в массиве Cursors и занимают в нем позиции от -17 до 0; курсор по умолчанию имеет в массиве индекс 0 (crDefault), отсутствию курсора соответствует индекс -1 (crNone), курсору стрелки — индекс -2 (crArrow) и т.д. Во встроенной справке по свойству Cursors перечислены все курсоры и имена соответствующих констант, так что обратитесь за полным списком доступных курсоров к справочной системе C++Builder.
Чтобы использовать один из курсоров массива Cursors, присвойте имя выбранного курсора свойству Cursor объекта Screen:
Screen->Cursor = TCursor(crHourGlass);
Здесь в дело вступает VCL, которая загружает и выводит нужный курсор. Свойство Cursors для вас прозрачно, поскольку вы не обращаетесь к нему непосредственно. Вместо этого вы просто выполняете присваивание значения свойству Cursor, a VCL выполняет поиск соответствующего курсора в массиве Cursors и его отображение. Свойство Cursor компонента и свойство Cursors объекта Screen работают совместно для отображения различных курсоров в вашем приложении.