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

Вниз

Как не дать мыше уйти с компонента   Найти похожие ветки 

 
dez   (2003-08-04 20:15) [0]

Есть TImage. Если юзвер вдавил левую кнопку мыши, то курсор не уходит за пределы имаджа. Реально ли такое сделать?
Зареннее сенькс.


 
Kair ©   (2003-08-04 20:30) [1]

Не делал, но возможно так:

if ssLeft in Shift then
ClipCursor(&Image1.{чета насчет TRect});


 
dez   (2003-08-04 20:48) [2]

а обратно?


 
dez   (2003-08-04 20:49) [3]

тьфу, что-то я к концу рабочего дня туплю. rect задать 0,0,screen.width,screen.height


 
Rouse_ ©   (2003-08-04 20:53) [4]


// Ставим
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
R: TRect;
P: TPoint;
begin
if ssLeft in Shift then
begin
P := ClientToScreen(Point(Image1.Left, Image1.Top));
with P, Image1 do
begin
R.Left := X;
R.Top := Y;
R.Right := X + Width;
R.Bottom := Y + Height;
end;
ClipCursor(@R);
end;
end;

// Снимаем
procedure TForm1.Image1Click(Sender: TObject);
begin
( nil)

// Ставим
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
R: TRect;
P: TPoint;
begin
if ssLeft in Shift then
begin
P := ClientToScreen(Point(Image1.Left, Image1.Top));
with P, Image1 do
begin
R.Left := X;
R.Top := Y;
R.Right := X + Width;
R.Bottom := Y + Height;
end;
ClipCursor(@R);
end;
end;

// Снимаем
procedure TForm1.Image1Click(Sender: TObject);
begin
ClipCursor(nil);
end;


Желаю успехов


 
Anatoly Podgoretsky ©   (2003-08-04 20:55) [5]

GetClipCursor


 
Rouse_ ©   (2003-08-04 21:04) [6]

> Anatoly Podgoretsky © (04.08.03 20:55)

Анатолий, мне кажется, Вы поторопились. Ваша функция всего-лишь возвращает адрес структуры содержащей координаты области ограничивающей перемещения курсора.

> dez (04.08.03 20:49)

А вот так нельзя делать, представьте что пользователь изменил разрешение экрана на более высокое. Тогда при таком подходе он не сможет переместить курсор вплотную к границам экрана.

Если прочитать внимательно справку, то можно увидеть:

Points to the RECT structure that contains the screen coordinates of the upper-left and lower-right corners of the confining rectangle. If this parameter is NULL, the cursor is free to move anywhere on the screen.

Соответсвенно, верный код будет: ClipCursor(nil);

Желаю успехов



Страницы: 1 вся ветка

Текущий архив: 2003.08.18;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.008 c
14-58489
korvin
2003-07-23 12:33
2003.08.18
Table.Append - ошибка адреса памяти


14-58404
Puke Zero
2002-12-14 16:35
2003.08.18
Font.FontStyle


14-58399
den777
2003-08-04 10:24
2003.08.18
Как выгрузить ненужные пакеты


14-58395
Layner
2003-08-04 13:15
2003.08.18
Помогите вызвать функцию из dll. Входных параметров нет.


14-58480
Владий
2003-07-23 16:00
2003.08.18
Как внести рассчитанное значение?...