![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Свой 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>