«Стандартные числа» (crHourglass
, crDefault
и т. Д.) - это предопределенные курсоры, предоставляемые Delphi VCL. Вы можете определить свои собственные и загрузить их в приложение из ресурса или из файла через Windows API, но нет волшебных неопубликованных TCursor
определений (или случайных чисел), которые будут означать что угодно. Попытка установить Screen.Cursors [] на неизвестное число без предварительной загрузки курсора приведет к минимальной ошибке массива вне границ, а нарушение доступа в худшем случае приведет к отображению курсора по умолчанию (см. TScreen.GetCursors
in Forms.pas
).
Краткое объяснение: TCursorRec
определяется в источнике VCL как запись, содержащая указатель на следующую запись, индекс и дескриптор курсора (HCURSOR
). Это в основном односвязный список, и когда вы запрашиваете курсор при доступе к списку Cursors
, VCL просматривает список, начиная с первого элемента и последовательно проходя по нему, пока не найдет индекс, соответствующий запрошенному вами. (в этот момент он устанавливает курсор на значение HCURSOR
этого элемента) или определяет, что запрошенный вами индекс не назначен, и в этом случае он возвращает курсор по умолчанию.