Вверх ↑
Ответов: 9906
Рейтинг: 351
#1: 2017-03-12 11:04:13 ЛС | профиль | цитата
Серьезно разобраться у меня пока здоровья не хватает...
Но, если поменять две строки местами, то - вроде работает
function WndProcGRush(Ctl_: PGRushControl; var Msg: TMsg; var Rslt: Integer): Boolean;
.....
WM_LBUTTONDOWN:
if ((Data.fStateInit = siNone) or (Ctl_.Focused = false)) then begin
Ctl_.Focused:=true;
Data.fStateInit := siButton;
PGRushControl(Ctl_).DoPush;
end;
WM_LBUTTONUP:
if (Data.fStateInit = siButton) then begin
PGRushControl(Ctl_).DoPop;
Data.fStateInit := siNone; // и теперь даже не знаю: надо ли поднимать эту (хотя бы для симметрии) ???
end;
WM_KEYDOWN:
if (Msg.wParam = 32) and (Data.fStateInit = siNone) then begin
Data.fStateInit := siKey;
PGRushControl(Ctl_).DoPush;
end;
WM_KEYUP:
if (Msg.wParam = 32) and (Data.fStateInit = siKey) then begin
Data.fStateInit := siNone; // эту поднял вверх на одну строку...
PGRushControl(Ctl_).DoPop;
end;
карма: 9

1
Голосовали:3042
Редактировалось 1 раз(а), последний 2017-03-12 11:28:40