Guest |
Отправлено: 17.06.2003, 12:30 |
|
Не зарегистрирован
|
Скажите, пожалуйста, можно ли использовать анимированные курсоры («живые указатели») в приложениях? И если можно, то как их использовать с помощью BCB 5.0 Enterprice? |
|
Admin |
Отправлено: 17.06.2003, 14:12 |
|
Владимир
Группа: Администратор
Сообщений: 1190
|
Ну есть же и в разделе FAQ и в архиве форума
CODE |
Во первых необходимо получит handle курсора, а затем определить его в массиве курсоров компонента TScreen. Индексы предопределенных курсоров системы отрицательны, пользователь может определить курсор, индекс которого положителен.
---------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
const crMyCursor = 5;
Screen->Cursors[crMyCursor] = LoadCursorFromFile("C:\\WIN\\Cursors\\banana.ani");
Form1->Cursor = crMyCursor;
}
или
void __fastcall TForm1::Button1Click(TObject *Sender)
{
HANDLE h;
h = LoadImage(0, "C:\\WIN\\Cursors\\coin.ani",
IMAGE_CURSOR,0,0,LR_DEFAULTSIZE|LR_LOADFROMFILE);
if(h == 0)
ShowMessage("Cursor not loaded");
else
{
Screen->Cursors[1] = h;
Form1->Cursor = 1;
}
}
//---------------------------------------------------------
или можем добавить наш курсор (анимированный) в ресурс
и когда нужно, достать из ресурса
Project -> Resources-> New выбираем курсор, который запихнем
в ресурс , выбираем вид ресурса — курсор, указываем файл с курсором,
даем имя этому ресурсу — например Barb.
Компилим проект.
Когда надо — извлекаем из ресурса и показываем
(Плюс этого варианта — курсор лежит в .exe, не надо всюду
таскать файл с курсором)
//--------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
const TCursor xBarb = 1;
Screen->Cursors[xBarb] = LoadCursor(HInstance, "Barb");
Form1->Cursor = xBarb;
}
//---------------------------------------------------------
|
Также смотрите функцию в Help к C++Builder и Example
по ее использованию.
LoadAniCursor(Instance: THandle; ResID: PChar): HCursor;
The LoadAniCursor function loads the specified animated cursor resource
from the executable (.EXE or .DLL) file associated with the specified
application instance.
CODE |
//-------------------------------------------------
#include <vclutils.hpp>
void __fastcall TForm1::Button4Click(TObject *Sender)
{
HICON Cur;
Cur = LoadAniCursor((int)HInstance, "Barb");
if(Cur == 0) ShowMessage("Error loading cursor !");
else {
Screen->Cursors[200] = Cur;
Form1->Cursor = 200;
}
}
//--------------------------------------------------
|
Отредактировано Admin — 17 Jun 2003, 14:35
|
|
|