Вниз
Скачать: CL | DM;

Mouse.Button=mbNone   Найти похожие ветки 

 
BelchonokH ©   (2003-10-12 18:17) [0]

Доброго вам!!! Такая вещь, может это в КОЛ ошибка, надо по нажатию левой кнопки мыши делать что-то... работает только

 procedure TForm1.Panel1MouseMove(Sender: PControl;
 var Mouse: TMouseEventData);
begin
If Mouse.Button=mbNone Then
...

причём только на левую кнопку, любые другие константы, типа mbLeft или mbRight, ничего не дают, как-будто ничего и не нажимали...


 
Gandalf ©   (2003-10-12 20:53) [1]

Если не баг то фича.
Дело в том что в KOL Button делается руками, а надо кодом вида.

function WndProcMouse(Self_: PControl; var Msg: TMsg; var Rslt: Integer): Boolean;
var MouseData: TMouseEventData;
begin
 Result := False;
 if (Msg.message >= WM_MOUSEFIRST) and (Msg.message <= $20A {WM_MOUSELAST}) and
    (Msg.hwnd = Self_.fHandle) then
 with MouseData do
 begin
   Shift := Msg.wParam;
   if GetKeyState( VK_MENU ) < 0 then
      Shift := Shift or MK_ALT;
   X := LoWord( Msg.lParam );
   Y := HiWord( Msg.lParam );
   Button := mbNone; // <- Вот потому и не пашет
   StopHandling := FALSE;
   Rslt := 0; // needed ?
   case Msg.message of
   ...    WM_MOUSEMOVE:
     if Assigned( Self_.OnMouseMove ) then
     begin
        MouseData.Button:=TMouseButton(Msg.wParam); // А вот так пашет
        Self_.OnMouseMove( Self_, MouseData );
     end;


Думаю это код надо поставить в верху, что он был для всех и не мучаться вещами вида Button:=mbLeft и т.п. Потому как наскольку помню wParam там везде один...



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.042 c
1-1081848714
SergP
2004-04-13 13:31
2004.05.02
"Засунуть" ProgressBar в StatusBar


6-1078621428
GanibalLector
2004-03-07 04:03
2004.05.02
RasDial или InternetDial


1-1082113754
alienserg
2004-04-16 15:09
2004.05.02
offtop: Рестарт сервиса и загрузка DLL


6-1078214636
FireMan_Alexey
2004-03-02 11:03
2004.05.02
HTTP + Explorer + Cache


14-1081161379
ИМХО
2004-04-05 14:36
2004.05.02
Развал СССР




   Наверх