Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2003.08.18;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.002 c
14-58426
Best Gun
2003-08-02 19:26
2003.08.18
Обновления для Win2000 + SP4


14-58469
d_oleg
2003-07-21 15:55
2003.08.18
firebird IN


14-58438
VID
2003-08-02 16:57
2003.08.18
512mb озу


14-58452
Ajax
2003-08-01 12:32
2003.08.18
Запуск программ


14-58432
Yanis
2003-08-03 02:57
2003.08.18
off





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский