Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.08.07;
Скачать: CL | DM;

Вниз

Перемещение по DBGrid средней кнопкой мыши   Найти похожие ветки 

 
W   (2005-06-30 08:47) [0]

Почему при перемещении по DBGrid средней кнопкой мыши изменяется только выделение, а не текущее положение указателя?
Как сделать, чтобы при нажатии на среднюю кнопку мыши инфа из базы в контролах обновлялась вместе с выделением?


 
msguns ©   (2005-06-30 09:31) [1]

procedure TfrmListFond.FormCreate(Sender: TObject);
begin
 TDrawGrid(grListFonds).OnMouseWheelDown := FormMouseWheelDown;
 TDrawGrid(grListFonds).OnMouseWheelUp := FormMouseWheelUp;
 TDrawGrid(grFondsNames).OnMouseWheelDown := FormMouseWheelDown;
 TDrawGrid(grFondsNames).OnMouseWheelUp := FormMouseWheelUp;
end;
...
procedure TfrmListFond.FormMouseWheelDown(Sender: TObject;
 Shift: TShiftState; MousePos: TPoint; var Handled: Boolean);
begin
 if (Screen.ActiveControl.ClassType<>TDBGrid) then exit;
 with Screen.ActiveControl as TDBGrid do
   if Visible and (DataSource.DataSet<>nil) and (DataSource.DataSet.RecordCount>0) then
      DataSource.DataSet.Next;
end;

procedure TfrmListFond.FormMouseWheelUp(Sender: TObject;
 Shift: TShiftState; MousePos: TPoint; var Handled: Boolean);
begin
 if (Screen.ActiveControl.ClassType<>TDBGrid) then exit;
 with Screen.ActiveControl as TDBGrid do
   if Visible and (DataSource.DataSet<>nil) and (DataSource.DataSet.RecordCount>0) then
      DataSource.DataSet.Prior;
end;


 
msguns ©   (2005-06-30 09:33) [2]

Второй вопрос неясен


 
W   (2005-06-30 12:34) [3]

У TDrawGrid есть событие OnMouseWheelUp, а у TDBGrid - нет.
По поводу второго вопроса... Надо как раз чтобы при движении колесика мыши в TDBGrid шло перемещение указателя по базе, т.е. изменялась текущая запись. На деле же происходит вот что: выделение ползет вместе с колесом, а указатель у Грида остается на том месте, где был. Чтоб его сместить, надо либо клавишу управления курсором нажать, либо мышью встать на нужную запись.


 
КиТаЯц ©   (2005-06-30 12:40) [4]

> W   (30.06.05 12:34) [3]

Я тек понял "первая часть вопроса" = "вторая часть вопроса в другой формулировке"?

Дык ведь в [1] все есть...


 
W   (2005-06-30 12:44) [5]

Вы поняли правильно. Но [1] не подходит по указанной в [3] причине (см. первое предложение).


 
КиТаЯц ©   (2005-06-30 12:50) [6]

> W   (30.06.05 12:44) [5]

[1] как раз подходит т.к. причина указанная в первом предложении [3] отсутствует по причине 4-го и 6-го предложения в [1]

Поясняю:
TDrawGrid(ИМЯ ВАШЕГО DB ГРИДА).OnMouseWheelDown := FormMouseWheelDown;
TDrawGrid(ИМЯ ВАШЕГО DB ГРИДА).OnMouseWheelUp := FormMouseWheelUp;


 
W   (2005-06-30 12:57) [7]

Спасибо большое за ответ :).


 
Германн ©   (2005-06-30 15:37) [8]

Лучше уж один раз сделать своего наследника от TDBGrid, в котором перекрыть методы DoMouseWheelDown, DoMouseWheelUp. И потом пользоваться им всегда. Раз уж Борланд упрямо не хочет это сам сделать. :(


 
Virgo_Style ©   (2005-06-30 15:43) [9]

msguns ©   (30.06.05 9:31) [1]

Вроде бы надо Handled в true выставлять, или я ошибаюсь?


 
ANB ©   (2005-06-30 15:54) [10]

EhLib грид нормально все перемещает.


 
msguns ©   (2005-06-30 16:33) [11]

>ANB ©   (30.06.05 15:54) [10]
>EhLib грид нормально все перемещает.

Ну да, а в Греции апельсины на улицах растут ;)


 
dolmat   (2005-06-30 16:58) [12]

>Германн ©   (30.06.05 15:37) [8]
> Раз уж Борланд упрямо не хочет это сам сделать. :(
Проверял в 2005 все работает, в 7 действительно не хочет


 
Германн ©   (2005-06-30 17:23) [13]

2 dolmat   (30.06.05 16:58) [12]

Ну нконец-то! :)
Но на 2005 переходить все равно не хочу! :(



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

Текущий архив: 2005.08.07;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.059 c
1-1121630007
able
2005-07-17 23:53
2005.08.07
Перехват положения окна


14-1121668373
Antonn
2005-07-18 10:32
2005.08.07
Помогите найти решение задачки


14-1121420388
KSergey
2005-07-15 13:39
2005.08.07
Не отображаются создаваемые папки под произвольным пользователем


9-1113998028
Comrade
2005-04-20 15:53
2005.08.07
Как "забобахать" мегопростую игр


3-1120043176
Тучудище
2005-06-29 15:06
2005.08.07
Когда лучше подтверждать транзакции