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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.03.2009, 20:44   #1
Дамир
Пользователь Подтвердите свой е-майл
 
Регистрация: 06.12.2006
Сообщений: 61
Вопрос Как определить выход курсора за пределы объекта Image

Всем Доброго времени суток! Не могли бы помочь с проблемой. На форме расположен Image. Как определить, расположен курсор над Image или нет?
Дамир вне форума Ответить с цитированием
Старый 28.03.2009, 20:49   #2
program123
Подтвердите свой е-майл
 
Регистрация: 12.02.2009
Сообщений: 144
По умолчанию

Можно, например вот так
Код:
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
    Form1.Caption:='Курсор расположен на картинкой';
end;

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
     Form1.Caption:='Курсор расположен на форме';
end;
Смотря что нужно делать
program123 вне форума Ответить с цитированием
Старый 29.03.2009, 01:10   #3
Дамир
Пользователь Подтвердите свой е-майл
 
Регистрация: 06.12.2006
Сообщений: 61
По умолчанию

В общем, на Image рисуется сетка, ячейки которой выделяются при наведении курсора мыши. И если курсор выходит за пределы объекта и сразу за пределы формы, то предложенный вариант не подходит.
Дамир вне форума Ответить с цитированием
Старый 29.03.2009, 01:21   #4
Jeni
Форумчанин
 
Регистрация: 31.05.2007
Сообщений: 486
По умолчанию

Была как-то подобная тема, стоит её поискать. Как один из вариантов - поместить Label поверх Image, установить у метки Transparent=True и обрабатывать события OnMouseEnter и OnMouseLeave. Но это так, черновой вариант.
Jeni вне форума Ответить с цитированием
Старый 29.03.2009, 03:55   #5
Дамир
Пользователь Подтвердите свой е-майл
 
Регистрация: 06.12.2006
Сообщений: 61
По умолчанию

Я смотрел эту тему. А с Label то же самое происходит при выходе за пределы формы (не обрабатывается событие).
Дамир вне форума Ответить с цитированием
Старый 29.03.2009, 10:30   #6
Selestis
Форумчанин
 
Аватар для Selestis
 
Регистрация: 21.01.2009
Сообщений: 719
По умолчанию

Можно через процедуру GetCursorPos(..:TPoint) анализировать координаты. Типа Form1.Left+Image1.Leftбудет левой границей. А делать можно по событию OnMouseMove и формы и Imag'а или на худой конец Application.OnIdle
Изобретатель велосипедов
Selestis вне форума Ответить с цитированием
Старый 29.03.2009, 13:59   #7
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Вам нужно обрабатывать события винды, возникающие при входе курсора в пределы компонента и при уходе за его пределы.
Для случая с Image я вам набросал примерчик:
Код:
  private
    { Private declarations }
    procedure Image1WindowProc(var Msg: TMessage);
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  OldImage1WindowProc: TWndMethod;
...
procedure TForm1.FormCreate(Sender: TObject);
begin
OldImage1WindowProc:=Image1.WindowProc;
Image1.WindowProc:=Image1WindowProc;
Image1.Perform(CM_MOUSELEAVE,0,0);
end;

procedure TForm1.Image1WindowProc(var Msg: TMessage);
begin
case msg.Msg of
CM_MOUSELEAVE:
begin
Label1.Caption:='Не над картинкой';
end;
CM_MOUSEENTER:
begin
Label1.Caption:='Над картинкой';
end;
end;
OldImage1WindowProc(Msg);
end;
mihali4 вне форума Ответить с цитированием
Старый 29.03.2009, 21:59   #8
Дамир
Пользователь Подтвердите свой е-майл
 
Регистрация: 06.12.2006
Сообщений: 61
По умолчанию

Спасибо огромное!, mihali4, РАБОТАЕТ!!!
Дамир вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как выполнить выход из проги? 61.masquit Общие вопросы C/C++ 1 22.03.2009 23:19
Определить положение объекта Deight JavaScript, Ajax 6 25.02.2009 18:11
Как поменять одну из текстур объекта не меняя все остальные и без повторной загрузки объекта в GLScene DomKr@t Мультимедиа в Delphi 0 14.12.2008 01:52
как определить координаты курсора snaem Общие вопросы .NET 0 23.04.2008 22:27
Координаты курсора относительно объекта на форме CoDeR Общие вопросы Delphi 4 01.08.2007 22:49