![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Мыша [D5, Win95/98, Win2k]
BJValentine © (2002-07-08 20:08:00)Ребята, есть помпонента на форме TPanel. Как можно сделать так, чтобы мыша не могла выйти за пределы этой компоненты?
BJValentine (2002-07-09 12:26:00) [1]Спасибо
Skier (2002-07-09 11:38:00) [2]>BJValentine
procedure SetCursorClipRect(const AControl: TWinControl);
function GetScreenClientRect(const AControl: TControl): TRect;
var
APoint : TPoint;
begin
SetRectEmpty(Result);
if AControl = nil then Exit;
APoint := Point(0, 0);
APoint := AControl.ClientToScreen(APoint);
with Result do begin
Left := APoint.X;
Top := APoint.Y;
Right := Left + AControl.ClientWidth;
Bottom := Top + AControl.ClientHeight;
end; //with
end;
var
ARect : TRect;
begin
if AControl = nil then begin
ClipCursor(nil);
Exit;
end; //if
ARect := GetScreenClientRect(AControl);
ClipCursor(@ARect);
end;
Использование SetCursorClipRect(Panel1) - установить
SetCursorClipRect(nil) - снять
BJValentine (2002-07-09 11:31:00) [3]Да как этим ClipCursor пользоваться? Что должно быть в качестве параметров? Приведите хоть оди маленький примерчик с ClipCursor, please!!!
kull (2002-07-09 01:29:00) [4]
> Billy © (08.07.02 23:15)
Да - ClipCursor. Только не забыть вызвать ее со старыми координатами, а то мыша так и будет в пределах этого Rect - а двигаться. Сам напарывался на это - очень неудобно потом одной клавиатурой работать. :)
Billy (2002-07-08 23:15:00) [5]По-моему была такая функция ClipCursor, но может я что-то путаю
BJValentine (2002-07-08 21:12:00) [6]А пример можно, я ещё никогда не работал с такой фишкой, трудно зацепиться...
MsGuns (2002-07-08 20:48:00) [7]OnMouseMove Event. Сравнивать координаты мыши с TRect`ом панели, ну и дальше понятно..