Главная страница
    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.003 c
14-58458
Bless
2003-07-23 10:59
2003.08.18
Удаление из многих таблиц


14-58449
Soft
2003-08-01 16:50
2003.08.18
Вам когда-нибудь кошмары снятся?


14-58493
KreZ0n
2003-08-04 21:32
2003.08.18
Активный компонент


14-58485
Leran2003
2003-07-23 15:14
2003.08.18
TDataSetProvider, TClientDataSet


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





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский