Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.06.06;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.009 c
3-17783
veronika
2002-05-14 16:09
2002.06.06
adoTable1.updatebatch


1-17908
Andrey PR
2002-05-27 13:42
2002.06.06
Изменение ширины символа


4-18200
cad
2002-04-02 16:08
2002.06.06
Как выделить строку ListView чужого окна?7


14-18106
Yuraz
2002-04-29 15:49
2002.06.06
Пропала кнопка


14-18113
Ochen Interesno
2002-04-29 17:20
2002.06.06
IT-проекты