Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Отправка сетке соодщения WM_MOUSEDOWN


TStas ©   (2008-03-22 16:49:00) 

Сетка - TstringGrid. Нужно ей отправить сообщение, что на ячейке ACol, ARow, был щелчок.
Rect := StringGrid1.CellRect(ACol, ARow); //Получил прямоугольник сетки.
x := Rect.Left +1; //Получил иксовую координаты "мыши"
y := Rect.Top + 1; //Получил игриковую координату "мыши"
А вот как теперь в wParam и lParam засунить эти координаты и, главное, что "щелчок" был именно левой клавишей "мыши"?
Вот и весь вопрос.


TStas   (2008-03-24 22:54:00) [1]

Да я уже сам разобрался. Отправлять его нужно затем, чтобы сетка узнала, что надо выделять ячейки, Up она и сама чудесно получит. Ситуация стандартная: на ячейку сетки подкладывается контрол в OnDrawCell, на нужно, чтобы можно было выделять диапазон.


Leonid Troyanovsky   (2008-03-23 11:00:00) [2]


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

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


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

--
Regards, LVT.


Германн   (2008-03-23 01:05:00) [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   (2008-03-22 18:39:00) [4]


> TStas ©   (22.03.08 16:49)  

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

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

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

--
Regards, LVT.


{RASkov}   (2008-03-22 17:31:00) [5]

> [0] TStas ©   (22.03.08 16:49)

> соодщения WM_MOUSEDOWN

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо