Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2005.08.07;
Скачать: [xml.tar.bz2];

Вниз

Перемещение по 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.05 c
11-1104342568
mdw
2004-12-29 20:49
2005.08.07
С Новым годом!


1-1121769566
Destroyer
2005-07-19 14:39
2005.08.07
Как вывести текст вертикально?


1-1121441253
Juice
2005-07-15 19:27
2005.08.07
Копирование комонента ( набора данных ?)


1-1121671079
Лёха
2005-07-18 11:17
2005.08.07
Большие числа


9-1113259483
TGLActor
2005-04-12 02:44
2005.08.07
GLScene Как узнать в какую часть TGLActor а я попал выстрелом ?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский