W popumMenu mam jakieś pozycje które coś robią i ikonki obok nich.
Czy da się, aby po kliknięciu na te właśnie ikonki przechwycić i wykonać coś innego ?
Pele2 napisał(a)
W popumMenu mam jakieś pozycje które coś robią i ikonki obok nich.
Czy da się, aby po kliknięciu na te właśnie ikonki przechwycić i wykonać coś innego ?
Może da się pobrać pozycję kursora względem menu.
w OnClick MenuItem musisz odpowiednio zaprogramować dwa zdarzenia jedno kiedy kursor jest nad ikona a drugie kiedy poza ikona.
Sprawdzasz pozycję kursora za pomocą GetCursorPos i w warunku if odpowiednio wykonujesz co ci tam potrzeba
No tak. Ale żeby obsłużyć pozycję kursora, muszę znać rozmiar i położenie pozycji popup.
Może jakaś mała podpowiedź co do tego ?
popupmenu1.popuppoint; //=pozycja popup'a
RFabianski napisał(a)
popupmenu1.popuppoint; //=pozycja popup'a
Tylko że to mi zwraca pozycję popupa jako całości a nie poszczególnych pozycji.
Poradziłem sobie tak:
var pt,cp : TPoint;
begin
pt:= suiPopupMenu1.PopupPoint;
GetCursorPos(cp);
if (cp.X>=pt.X) and (cp.x<=pt.X+27) then
begin
suiPopupMenu1.OnChange(NIL, nil, False);
ShowMessage('strzaleczka w prawo');
end;
end;
Ale po kliknięciu za ikonkę, popup automatycznie się zamyka. A ja chcę mieć możliwość kilka razy kliknąć na ikonkę, a dopiero później na pozycję w popup żeby wykonać.
Czyli jak po kliknięciu nie zamykać popupa ?
Pele2 napisał(a)
Czyli jak po kliknięciu nie zamykać popupa ?
Tak to się chyba nie da.
Wydaje mi się, że musiałbyś własnego popupa napisać.
nom tez mi sie wydaje ze do tego to juz sobie musisz sam cos napisać bo na standardowym to tego sie nie zrobi raczej