1 (edited by sibprogsistem 2021-12-24 07:44:23)

Topic: Место нахождения курсора мышки

хочу сменить панель с кнопками у imageDataBase.
отключил у компонента imageDataBase  кнопки и разместил  свою панель с кнопками
хотел повесить  управление свойством панели visible на события onMauseEnter и onMauseLeave
но проблема возникает при переходе курсора с рисунка на панель ( зацикливает между событиями onMauseEnter и onMauseLeave )

как я понимаю мне нужно ориентироваться только на рисунок, но я не могу понять как мне определять находиться курсор в пределах рисунка или нет ведь если перевести курсор на панель программа считает что курсор ушел с рисунка (панель находиться на рисунке)..

Re: Место нахождения курсора мышки

Читай последнее положение (X Y) курсора, сравнивай в ..Leave с координатами рисунка.

Re: Место нахождения курсора мышки

Привет Sibprogsistem,
Если я правильно понял вопрос, вы можете попробовать вот так (см. Вложение).
Вам нужно переместить «мышь» в нижнюю часть формы 1).
Затем вместо использования onmouseleave для панели используйте onmouseenter для другого объекта
Может быть, это ответ на ваш вопрос.
Derek.
.
If I understand the question correctly, you can try  it like this (please see the attachment).
You need to take the 'mouse' down to the bottom of Form1).
Then, instead of using 'onmouseleave' for the panel, use 'onmouseenter' on a different object

Post's attachments

Attachment icon bouncebar.zip 866.19 kb, 156 downloads since 2021-12-24 

4 (edited by sibprogsistem 2021-12-24 11:25:10)

Re: Место нахождения курсора мышки

vovka3003 wrote:

Читай последнее положение (X Y) курсора, сравнивай в ..Leave с координатами рисунка.

 

derek wrote:

Если я правильно понял вопрос, вы можете попробовать вот так (см. Вложение).
Вам нужно переместить «мышь» в нижнюю часть формы 1).
Затем вместо использования onmouseleave для панели используйте onmouseenter для другого объекта
Может быть, это ответ на ваш вопрос.
Derek.

 
спасибо за подсказку

procedure mouseLeavePI (Sender: TObject);
var
x0,y0:integer;
begin
  GetCursorPos(x0,y0);
  x0 := x0 - frmQuestion.Left -2;
  y0 := y0 - frmQuestion.Top - 31;
  if (x0<=0)OR(y0<=0)OR(x0>=442)OR(y0>=211)then frmQuestion.pImgButton.Visible := False;
end;