-
Сетка - TstringGrid. Нужно ей отправить сообщение, что на ячейке ACol, ARow, был щелчок. Rect := StringGrid1.CellRect(ACol, ARow); //Получил прямоугольник сетки. x := Rect.Left +1; //Получил иксовую координаты "мыши" y := Rect.Top + 1; //Получил игриковую координату "мыши" А вот как теперь в wParam и lParam засунить эти координаты и, главное, что "щелчок" был именно левой клавишей "мыши"? Вот и весь вопрос.
-
> [0] TStas © (22.03.08 16:49)
> соодщения WM_MOUSEDOWN
А что это за сообщение такое? Я что-то не нашел ни в справке, ни в стандартных исходниках... Может ты путаешь и тебе нужны какие нибудь из этих: WM_MOUSEFIRST = $0200; ............. WM_MOUSELAST = $020A; ? Есть WM_хBUTTONDOW, где х - это L(левая), R(правая) и M(средняя) кнопки мыши....
-
> TStas © (22.03.08 16:49)
> Сетка - TstringGrid. Нужно ей отправить сообщение, что на > ячейке ACol, ARow, был щелчок.
PostMessage(StringGrid1.Handle, WM_LBUTTONDOWN, 0, MakeLParam(x, y)).
Только, непонятно нах. И кто будет WM_LBUTTONUP делать.
-- Regards, LVT.
-
> 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;
-
> Германн © (23.03.08 01:05) [3]
> Обработчик OnSelectCell вызывается дважды в таком коде:
type
TCrackGrid = class(TStringGrid);
..
TCrackGrid(StringGrid1).FocusCell(ACol, ARow,True);
-- Regards, LVT.
-
Да я уже сам разобрался. Отправлять его нужно затем, чтобы сетка узнала, что надо выделять ячейки, Up она и сама чудесно получит. Ситуация стандартная: на ячейку сетки подкладывается контрол в OnDrawCell, на нужно, чтобы можно было выделять диапазон.
|