Odwrotne działanie wzg. OnMouseMove

Odpowiedz Nowy wątek
2011-07-30 14:05
Multi
0

Witam,

Mam problem, a mianowicie np: Jak mamy na Form-ie Button-a, dodałem zdarzenie OnMouseMove, gdzie gdy kursor znajdzie się nad Form-ą Button zostanie wyświetlony. Teraz jest pytanie jak zrobić zdarzenie odwrotne, a mianowicie, aby gdy kursor znajdzie się poza zasięgiem Form-y , Button został schowany. Nie znalazłem z zakładce Events niestety ani OnMouseOut ani czegoś o podobnym działaniu.

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
button1.Show;
end;

Pozdrawiam i proszę o pomoc,
Multi

Pozostało 580 znaków

2011-07-30 14:41
O_o
0

Hmm, z braku deplhi nie sprawdzę ale sugerowałbym coś takiego:

1.OnCreate: Testujesz czy mysz znajduje się nad formą i odpowiednio ustawiasz widoczność przycisku
2.OnMouseMove: Testujesz czy mysz znajduje się nad formą i odpowiednio ustawiasz widoczność przycisku

Edit:
Wygogliłem takie cuś:
http://www.delphipages.com/forum/showthread.php?t=168117


O̾..͠o
edytowany 1x, ostatnio: O_o, 2011-07-30 14:45

Pozostało 580 znaków

2011-07-30 14:42
0

hmm, w timerze albo w osobnym wątku pobierać położenie myszki za pomocą
CetCursorPos(p:TPoint);
i sprawdzać czy jest w obrzarze okna ALBO założyć hooka na myszke i sprawdzac położenie w pętli...

Pozostało 580 znaków

2011-07-30 14:46
1

onmouseenter i onmouseleave


- Ciemna druga strona jest.
- Nie marudź Yoda, tylko jedz tego tosta.
Google NIE GRYZIE!
Pomogłem - kliknij

Pozostało 580 znaków

2011-07-30 15:02
0
procedure TForm1.WndProc(var Message: TMessage);
begin
  if (Message.Msg = CM_MOUSELEAVE) then
  begin
    Caption:='mysz poza formą';
  end;
  if (Message.Msg = CM_MOUSEENTER) then
  begin
    Caption:='mysz nad formą';
  end;
  inherited WndProc(Message);
end;
 
Wy to już na siłę robicie włąsną pętlę komunikatów, co? - payl 2011-07-30 18:04

Pozostało 580 znaków

2011-07-31 10:45
Multi
0

Dziękuję wszystkim za pomoc. ;)

No i jak to rozwiązałeś? - pelsta 2011-07-31 12:14
Może zaznacz który post rozwiązał Twój problem? No i to co pelsta powiedział - jak rozwiązałeś? (ja sie akurat domyślam że onmouseenter i onmouseleave) - payl 2011-07-31 19:42
Ciekawe którą wersję Delphi używa. Np. w D7 OnMouseEnter i OnMouseLeave jest zdefiniowane tylko dla TLabel. - pelsta 2011-07-31 20:01

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0