Jump to content

Проблема с отрисовкой кнопки по событию


Recommended Posts

Меня поймут те пользователи которые сами отрисовывали свою форму.

Появляются глюки: делаю так, чтобы кнопки выделялись при наведение на неё. но если зажать мышку и переместить курсор то кнопка не возращается в исходное положение.

Procedure OnMousemove;

begin

image1.visible:=false;

image2.visible:=true;

end;

далее делаю на форму:

Procedure OnMousemove;

begin

image1.visible:=true;

image2.visible:=false;

end;

Заранее СПАСИБО!!!!!!!!!!!!!!!!!!!!!!!!! :cool::bye1::g:

Link to comment
Share on other sites

Насколько я понял, кнопку отрисовываешь сам...

что можно посоветовать....

Поищи способ через обработку WM_MOUSEHOVER и TrackMouseEvent

там можно что-то сделать.... Конкретным примером, извини, не помогу, поскольку никогда не нужно было ничего похожего, но судя по МСДН, это может помочь.... Это функции Win32 API, но наверняка, в VCL есть что-то на такой случай.

А то, что кнопка не "отпускается" при вытяжке мыши после нажатия на кнопке - не глюк, это оно везде так работает.

Сообщение WM_MOUSEMOVE (это его обработчик - OnMouseMove), окно получает только тогда, когда курсор мыши в пределах окна.

Link to comment
Share on other sites

Винда не умеет делать два действия одновременно, тоесть обрабатывать два сообщения WM_MOUSEMOVE и OnClick, она выполняет только последнее, а предыдущее уже не будет выполнено, тоесть оно переписывается OnClick'ом, а не записывается в поток, как мы все ожидаем, поэтому эту проблему надо устранять исскуственным созданием потока, что не просто и зачем это делать! Так что довольствуйтесь тем, что есть! :bleh:

Link to comment
Share on other sites

Винда не умеет делать два действия одновременно, тоесть обрабатывать два сообщения WM_MOUSEMOVE и OnClick, она выполняет только последнее, а предыдущее уже не будет выполнено, тоесть оно переписывается OnClick'ом, а не записывается в поток, как мы все ожидаем, поэтому эту проблему надо устранять исскуственным созданием потока, что не просто и зачем это делать! Так что довольствуйтесь тем, что есть! :bleh:

О чем ты говоришь? При чем здесь два действия одновременно? Прекрасно обрабатывается и onMouseMove и onClick.

Проблема в том, что если делать свою кнопку, и на onMouseDown показывать картинку нажатой кнопки, а на onMouseUp возвращать картинку отжатой кнопки, то возникает нескладуха: если нажать кнопку мыши, отвести ее с кнопки и там отжать, то кнопка на форме не "отожмется" т.к. MouseUp получает уже не твоя кнопка, а тот контрол, над которым в этот момент курсор.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...