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

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

Свой Cursor [D7, WinXP]


Radgar ©   (2005-06-28 19:19:00) 

Подскажите, пожалуйста, как испоьзовать (сделать) свой курсор.


КиТаЯц   (2005-06-30 12:06:00) [1]

>-=XP=- ©   (30.06.05 12:00) [17]

Не знал. Даже никогда об этом не задумывался.


-=XP=-   (2005-06-30 12:00:00) [2]

Ищиш в проекте где написано

Не важно.


КиТаЯц   (2005-06-30 11:50:00) [3]

Ищиш в проекте где написано: {$R *.res} и следующей строчкой добавляеш {$R Cursors.res} //название файла

Искать лучше так:
1. Ctrl + F
2. Переключится на фкладку "Find in Files"
3. Вписываем {$R *.res} и жмем ОК


Radgar   (2005-06-30 11:41:00) [4]

Извенните, но ещё один вопрос:

Как подключать res к Дельфи?


-=XP=-   (2005-06-30 09:35:00) [5]

А как импортировать в res?

Компилятор ресурсов: brcc32.exe
Созадете rc-Файл (простой текстовый в блокноте):

MY_CURSOR_1 CURSOR c:\MyCur1.cur
MY_CURSOR_2 CURSOR c:\MyCur2.cur

И подсовываете его компилятору. На выходе - откомпилированный ресурсный файл (res)


КиТаЯц   (2005-06-30 08:58:00) [6]

Проще. Есть два анимированных курсора. Созданы программой AWicons ( http://www.awicons.com/awicons.html) Лежат в отдельной папке.
Подгружаем так:


procedure TMainForm.LoadAniCursor;
 var h: THandle;
   CurPath: string;
begin
h := 0;
CurPath:= ExtractFileDir(ParamStr(0))+'\Cursors\_busy.ani';
 if FileExists(CurPath) then
 h := LoadImage(0, PAnsiChar(CurPath), IMAGE_CURSOR, 0, 0, LR_DEFAULTSIZE or LR_LOADFROMFILE);
   if (h <> 0) then Screen.Cursors[-11] := h; // подмена курсора "система занята" (часы)
h := 0;
CurPath:= ExtractFileDir(ParamStr(0))+'\Cursors\_sql.ani';
 if FileExists(CurPath) then
 h := LoadImage(0, PAnsiChar(CurPath), IMAGE_CURSOR, 0, 0, LR_DEFAULTSIZE or LR_LOADFROMFILE);
   if (h <> 0) then Screen.Cursors[-17] := h; // подмена курсора "выполняется SQL"
end;


У меня прекрасно работает.


Radgar   (2005-06-29 22:27:00) [7]


> -=XP=- ©


А как импортировать в res?


-=XP=-   (2005-06-29 21:17:00) [8]

http://www.awicons.com/


Radgar   (2005-06-29 20:13:00) [9]

Ну, посоветуйте тогда хотя-бы программу, в которой можно без проблем делать цветные курсоры изагонять их в res файлы. ;-)


Radgar   (2005-06-29 19:07:00) [10]


> Просто Джо ©  


А как добавить в *.res файл цветной курсор?


Просто Джо   (2005-06-28 23:52:00) [11]


> П.С. Пункты 3-4 выглядят так:
>  Screen.Cursors[crNewCursor] :=
>    LoadCursor(HInstance,'crNewCursor');


-->


>  Screen.Cursors[crNewCursor] :=
>    LoadCursor(HInstance,' NewCursor');

Убегаю за пивом, опечатался :)


Просто Джо   (2005-06-28 23:50:00) [12]


>  [6] Radgar ©   (28.06.05 23:01)
> Расскажите, пожалуйста, по подробнее как подключить свой
> курсор к Дельфи.

Прилинковуешь файл ресурсов с нужным курсором. Пусть, "NewCursor" - идентификатор твоего курсора в .res-файле. После этого, при старте приложения делаешь:
1. Объявляешь глобальную константу:
 crNewCursor = 1;
Значение константы должно быть больше 0, поскольку отрицательные значения зарезервированы для стандартных курсоров.
2. Загружаешь нужный курсор из ресурса функцией WinAPI LoadCursor, используя идентификатор курсора.
3. Элементу массива Screen.Cursor с порядковым номером crNewCursor присваиваешь хэндл курсора, полученный в результате вызова LoadCursor.
4. Использовать курсор в ран-тайм можно аналогично стандартным курсорам, например Image1.Cursor := crNewCursor;
Все. Уничтожать курсор при завершении программы нет необходимости, VCL сделает это сама.
 
П.С. Пункты 3-4 выглядят так:
 Screen.Cursors[crNewCursor] :=
   LoadCursor(HInstance,'crNewCursor');


Radgar   (2005-06-28 23:01:00) [13]

Расскажите, пожалуйста, по подробнее как подключить свой курсор к Дельфи.


capkoh   (2005-06-28 21:16:00) [14]

Программа есть ArtCursors от Aha-Soft
Перед тем как Screen.Cursor:=<MyCursor>, лучше сохранить текущий курсор old_cur := Screen.Cursor, а потом уже Screen.Cursor := new_cur, тюк тебе нужно же вернуть старый курсор.


Radgar   (2005-06-28 19:41:00) [15]

Это у всех так мало цветов(синий, желтый, белый, черный) или только у меня?

Вопрос: нельзя ли цветной курсор?


Просто Джо   (2005-06-28 19:36:00) [16]


>  [2] Radgar ©   (28.06.05 19:31)
> А у Дельфи для этого нету какой-нибудь встроенной программы/компонента?

ImageEditor


Radgar   (2005-06-28 19:31:00) [17]

А у Дельфи для этого нету какой-нибудь встроенной программы/компонента?


Гаврила   (2005-06-28 19:28:00) [18]

Для начала надо его нарисовать в каком-либо редакторе (например, это умеет делать вижуал студия) ,
потом как ресурс подкючить к сборке  ( {$R Mycursor.res} )
потом загрузить (LoadCursor)
потом выставить
Screen.Cursor:=<MyCursor>


Наверх

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