Detekcja kliknięcia

0

Jak wykryć w zdarzeniu OnClick czy kliknięto prawym czy lewym przyciskiem myszki, bo pozycje w PopMenu mają tylko OnClink :( ?

0

Może zamiast OnClick daj OnMouseUp i odczytaj wartość zmiennej button.
0 to lewy
1 to prawy
2 to trzeci klawisz myszki

0

Przecież napisałem że mam tylko do dyspozycji OnClick co tylko tam mam sender i nic żadne button :(

0

Służą do tego na przykład funkcje GetKeyState() i GetAsyncKeyState().

VK_LBUTTON - lewy

VK_RBUTTON - prawy

VK_MBUTTON - środkowy

VK_XBUTTON1 - pierwszy dodatkowy (X1)

VK_XBUTTON2 - drugi dodatkowy (X2)

(dwa ostatnie przyciski są dostępne tylko w Windows 2000/XP lub nowszych)

0

Coś nie tak :-8

Używam funkcji:

if GetKeyState(VK_LBUTTON) <>0 then
//procedura
else
/procedura2

I jest taka sprawa że co 2 - 3 kliknięcie prawy przycisk myszki działa jak lewy a lewy jak prawy czyli wykonują się na zmianę te procedury.
Dlaczego tak jest ?

0

Po co kombinujesz? wstaw procedurke:

procedure popupmenu1.click (...);
begin
if key=VK_LBUTTON then begin
  //lewy przycisk -tam takie procedurki
end 
else if key=VK_RBUTTON then begin
  //prawy przycisk myszy - procedurki
end;
end;

Proste i skuteczne

0

A skąd wezmę key jak mam tylko do dyspozycji Sender typu TObject ??
To jest zdarzenie OnClick i w nim nie ma key :-8

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