Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как использовать свой курсор?


Андрей235 ©   (2005-08-08 13:04:00) 

Я создал курсор в *.resфайле как его использовать?


Андрей235   (2005-08-08 19:00:00) [1]

Юрий Зотов, огромное тебе спасибо!!!!


Юрий Зотов   (2005-08-08 13:34:00) [2]

Пример есть в справке (объект TScreen, свойство Cursors, вверху страницы есть линк "Delphi example"). Даю перевод.

Этот пример показывает, как добавить свой курсор в программу. Предполагается, что свой курсор имеет имя NewCursor и был добавлен в файл ресурсов (.RES файл) программы. Вы можете добавить курсор используя Image Editor (меню Tools | Image Editor).

Следующий код делает этот курсор доступным для программы через константу crMyCursor и устанавливает его, как глобальный курсор программы.

const
 crMyCursor = 5;

procedure TForm1.FormCreate(Sender: TObject);
begin
 Screen.Cursors[crMyCursor] := LoadCursor(HInstance, 'NewCursor');
 Cursor := crMyCursor;
end;


От себя добавлю, что имена ресурсов чувствительны к регистру, поэтому, если в данном примере написать, скажем
LoadCursor(HInstance, 'newcursor')
то ресурс курсора найден не будет. Чтобы не путаться, лично я предпочитаю всегда использовать для имен ресурсов только заглавные буквы.

Еще добавлю, что таким же образом можно добавить в программу и несколько курсоров. Числовые константы для них можно выбирать любыми, но обязательно больше нуля (ноль и отрицательные числа зарезервированы под системные курсоры). Вот пример, в котором форме назначается один курсор, а расположенному на ней компоненту RichEdit1 - другой курсор.

const
 crFormCursor = 1;
 crEditCursor = 2;

procedure TForm1.FormCreate(Sender: TObject);
begin
 Screen.Cursors[crFormCursor] := LoadCursor(HInstance, 'FORMCURSOR');
 Screen.Cursors[crEditCursor] := LoadCursor(HInstance, 'EDITCURSOR');
 Cursor := crFormCursor;
 RichEdit1.Cursor := crEditCursor;
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо