Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.07.2010, 23:44   #11
Miha85193
Delphi, OpenGL API
Форумчанин
 
Аватар для Miha85193
 
Регистрация: 29.03.2010
Сообщений: 152
По умолчанию

А что мой вариант не подходит?

Цитата:
А как можно получить позицию курсора относительно всего экрана? Если конечно такое возможно.
Посмотри код, который я тебе написал, там все есть.
Miha85193 вне форума Ответить с цитированием
Старый 22.07.2010, 08:13   #12
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

Попробуйте использовать следующие события имиджа
Пример:
Код:
procedure TForm1.Image1MouseEnter(Sender: TObject);
begin
 edit1.Text:='true';//когда в области имиджа
end;

procedure TForm1.Image1MouseLeave(Sender: TObject);
begin
 edit1.Text:='false';//когда мышь покидает имидж
end;
примените это к вашим флагам
SERG1980 вне форума Ответить с цитированием
Старый 22.07.2010, 09:04   #13
Miha85193
Delphi, OpenGL API
Форумчанин
 
Аватар для Miha85193
 
Регистрация: 29.03.2010
Сообщений: 152
По умолчанию

Да действительно, был не прав. Мой вариант таки не подходит. Но кое что он всетаки умеет. Если интересно то вот:

Код:
procedure TForm1.Timer1Timer(Sender: TObject);
var
  Left_Top_Screen, Right_Bottom_Screen: TPoint; // координаты относительно клиентской области
begin
  // Узнаем координаты Имеиджа относительно левого верхнего угла экрана
  Left_Top_Screen := ClientToScreen(Image1.ClientRect.TopLeft);
  Right_Bottom_Screen  := ClientToScreen(Image1.ClientRect.BottomRight);
  
  if (( Mouse.CursorPos.X <= Left_Top_Screen.X)or
      (Mouse.CursorPos.Y <= Left_Top_Screen.Y)or(Mouse.CursorPos.X >= Right_Bottom_Screen.X)or(Mouse.CursorPos.Y >= 

Right_Bottom_Screen.Y)) then
    MessageBeep(MB_ICONEXCLAMATION);
end;
Mouse.CursorPos.X и Mouse.CursorPos.Y - координаты курсора относительно экрана
ClientToScreen - функция, которая переводит координаты клиентской области в координаты экрана.
Тип результата функции - TPoint.

Правда с маусом небольшая проблема (я имею в виду то, что нельзя отловить нажатие правой кнопки). Но зато можно отловить курсор за пределами Имеиджа. Ну вот в принципе и все. Код проверял, работает.
Miha85193 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перехват событий клавиатуры и мыши (X system) damned20 Qt и кроссплатформенное программирование С/С++ 4 26.02.2010 12:18
Перехват событий клавиатуры и мыши (X system) damned20 Общие вопросы C/C++ 0 25.02.2010 09:40
HTML нет событий при передачи методо POST через <input type="image" Mixail HTML и CSS 12 07.06.2009 03:33
Обработчики событий формы Alexei_1986 Помощь студентам 5 18.02.2009 22:11