Форум: "Основная";
Текущий архив: 2002.06.06;
Скачать: [xml.tar.bz2];
ВнизClipCursor() Найти похожие ветки
← →
Schummi (2002-05-25 15:38) [0]Доброго времени суток, Мастера. Такой вопрос. Использую процедуру ClipCursor() - ограничивает область для курсора. Однако возникает ошибка EAccessViolation. Почему она возникает и как от неё избавиться? Спасибо!
← →
ZZ (2002-05-25 16:06) [1]Ошибка в 17 строке
← →
Schummi (2002-05-26 09:11) [2]2ZZ
Издеваешься? А так как же?
← →
Schummi (2002-05-26 09:48) [3]Народ, может так:
var
R:TRect;
begin
...
ClipCursor(^R);
...
end;
Просто я так делал:
var
R:PRect;
begin
...
{присваивание значений Top, Left, Right, Bottom в R}
ClipCursor(R);
...
end;
← →
KilkennyCat (2002-05-26 09:49) [4]Приведи кусок кода, а то как же понять, почему ошибка...
← →
KilkennyCat (2002-05-26 09:52) [5]Из хелпа:
Remarks
The cursor is a shared resource. If an application confines the cursor, it must release the cursor by using ClipCursor before relinquishing control to another application.
Ошибка о доступе. Вывод: освободи курсор перед вызовом.
← →
Schummi (2002-05-26 10:19) [6]2KilkennyCat Как???
← →
Schummi (2002-05-26 10:20) [7]2KilkennyCat
procedure TForm1.Button1Click(Sender: TObject);
var
R:PRect;
begin
R.Left:=0;
R.Right:=400;
R.Top:=0;
R.Bottom:=400;
ClipCursor(nil);
end;
← →
Song (2002-05-26 12:38) [8]Интересно, а если ты передаёшь в процедуру ClipCursor nil, тогда зачем ты задавал R?
← →
mukha (2002-05-26 19:05) [9]Мне тоже не удалось решить такую проблему. Для ограничения перемещения курсора областью формы я поступил следующим образом, не совсем удачно, но работает:
// ограничение области перемещения курсора
procedure TForm1.FormCreate(Sender: TObject);
var
aRect:TRect;
begin
Form1.BorderStyle:=bsSingle;
GetWindowRect(Handle, aRect);
ClipCursor(@aRect);
end;
// снятие ограничения перемещения курсора
procedure TForm1.FormDestroy(Sender: TObject);
var
aRect:TRect;
begin
arect:=rect(0,0,GetSystemMetrics(SM_CXFULLSCREEN),GetSystemMetrics(SM_CxFULLSCREEN));
ClipCursor(@aRect);
end;
← →
ION T (2002-05-26 19:36) [10]Да просто ClipCursor(nil) надо вызывать для освобождения....
← →
Song (2002-05-26 23:04) [11]2mukha © (26.05.02 19:05)
А почему не совсем удачно? Насколько я помню в ClipCursor() нужно передавать переменную типа PRect
← →
Walker (2002-05-27 02:27) [12]Ха-ха-ха!
var
r:TRect;
begin
//r.Left, Right and so on
ClipCursor(@r);
end;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.06.06;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.007 c