Конференция "Основная" » Отправка сетке соодщения WM_MOUSEDOWN
 
  • TStas © (22.03.08 16:49) [0]
    Сетка - TstringGrid. Нужно ей отправить сообщение, что на ячейке ACol, ARow, был щелчок.
    Rect := StringGrid1.CellRect(ACol, ARow); //Получил прямоугольник сетки.
    x := Rect.Left +1; //Получил иксовую координаты "мыши"
    y := Rect.Top + 1; //Получил игриковую координату "мыши"
    А вот как теперь в wParam и lParam засунить эти координаты и, главное, что "щелчок" был именно левой клавишей "мыши"?
    Вот и весь вопрос.
  • {RASkov} © (22.03.08 17:31) [1]
    > [0] TStas ©   (22.03.08 16:49)

    > соодщения WM_MOUSEDOWN

    А что это за сообщение такое? Я что-то не нашел ни в справке, ни в стандартных исходниках...
    Может ты путаешь и тебе нужны какие нибудь из этих:
     WM_MOUSEFIRST       = $0200;
     .............
     WM_MOUSELAST        = $020A;
    ?
    Есть WM_хBUTTONDOW, где х - это L(левая), R(правая) и M(средняя) кнопки мыши....
  • Leonid Troyanovsky © (22.03.08 18:39) [2]

    > TStas ©   (22.03.08 16:49)  

    > Сетка - TstringGrid. Нужно ей отправить сообщение, что на
    > ячейке ACol, ARow, был щелчок.

    PostMessage(StringGrid1.Handle, WM_LBUTTONDOWN, 0, MakeLParam(x, y)).

    Только, непонятно нах. И кто будет WM_LBUTTONUP делать.

    --
    Regards, LVT.
  • Германн © (23.03.08 01:05) [3]

    > Leonid Troyanovsky ©   (22.03.08 18:39) [2]
    >
    >
    > > TStas ©   (22.03.08 16:49)  
    >
    > > Сетка - TstringGrid. Нужно ей отправить сообщение, что
    > на
    > > ячейке ACol, ARow, был щелчок.
    >
    > PostMessage(StringGrid1.Handle, WM_LBUTTONDOWN, 0, MakeLParam(x,
    >  y)).
    >
    > Только, непонятно нах. И кто будет WM_LBUTTONUP делать.
    >

    Мне тоже непонятно "нах". Может автор объяснит?
    Но вот интересное замечено было:
    Обработчик OnSelectCell вызывается дважды в таком коде:
     with StringGrid1 do begin
       Col:=2;
       Row:=2;
     end;

  • Leonid Troyanovsky © (23.03.08 11:00) [4]

    > Германн ©   (23.03.08 01:05) [3]

    > Обработчик OnSelectCell вызывается дважды в таком коде:


    type
     TCrackGrid = class(TStringGrid);
    ..
     TCrackGrid(StringGrid1).FocusCell(ACol, ARow,True);


    --
    Regards, LVT.
  • TStas © (24.03.08 22:54) [5]
    Да я уже сам разобрался. Отправлять его нужно затем, чтобы сетка узнала, что надо выделять ячейки, Up она и сама чудесно получит. Ситуация стандартная: на ячейку сетки подкладывается контрол в OnDrawCell, на нужно, чтобы можно было выделять диапазон.
 
Конференция "Основная" » Отправка сетке соодщения WM_MOUSEDOWN
Есть новые Нет новых   [134484   +49][b:0][p:0.001]