Форум: "KOL";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];
Вниз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 вся ветка
Форум: "KOL";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.035 c