Вниз
Скачать: CL | DM;

DBGrid и колесо мыши   Найти похожие ветки 

 
Andrews ©   (2003-04-10 12:57) [0]

Привет всем! Кто-нибудь сталкивался с такой проблемой: привращении колесика мыши "в DBGrid" происходит перемещение полоски выбора по строкам таблицы без перемещения по записям, т.е. перехода от записи к записи нет. Мало того, если покрутить колёсико, а потом осуществить маусклик выбирается случайная запись в приделах видимой части таблицы, в предыдущей строке также остается значок текущей записи в виде треугольника, но и новый также появляется, в результате можно загадить таким графическим мусором всю таблицу. Прокрутка осуществляется только в видимой части DBGrid. Такая фигня происходит со стандартным драйвером мыши Microsoft, мыши от Logitech, разных моделей. Если поставить родные драйвера, при установках по умолчанию, характер скролинга меняется, полоска выбора сразу скачет вниз(или вверх, смотря куда крутить) видимой части таблицы и далее смещается по одной записи. Если же в драйверах включить "совместимость со скролингом МС оффиса" происходит описаная выше фигня :o(. И чего думать то ли мои это глюки, то ли привет от Logitech и Microsoft.
Обработки события MouseWheel ни у DBGrid ни у Table я не нашел...


P.S. Извиняюсь за сумбурность изложения.


 
sniknik ©   (2003-04-10 13:26) [1]

может это решит часть "пролеммы"

описываеш
type

TWMMouseWheel = packed record
Msg: Cardinal;
Keys: SmallInt;
WheelDelta: SmallInt;
case Integer of
0: (
XPos: Smallint;
YPos: Smallint);
1: (
Pos: TSmallPoint;
Result: Longint);
end;

TMyDBGrid = class(TDBGrid)
procedure WMMouseWheel(var Message: TWMMouseWheel); message WM_MOUSEWHEEL;
Private
.........

procedure TMyDBGrid.WMMouseWheel(var Message: TWMMouseWheel);
begin
if DataSource.DataSet.Active then begin
if Message.WheelDelta > 10 then DataSource.DataSet.Prior;
if Message.WheelDelta < -10 then DataSource.DataSet.Next;
end;
end;


вызываеш примерно так
procedure TMainForm.FormCreate(Sender: TObject);
begin
DBGrid:= TMyDBGrid.Create(TabSheet1);
DBGrid.Parent:= TabSheet1;
DBGrid.Align:= alClient;
DBGrid.BorderStyle:= bsNone;
DBGrid.DataSource:= DataSource1;
DBGrid.OnDblClick:= DBGridDblClick;
DBGrid.OnKeyPress:= DBGridKeyPress;
DBGrid.OnTitleClick:= DBGridTitleClick;
DBGrid.PopupMenu:= PopupMenu3;
end;



 
Vovik ©   (2003-04-10 15:07) [2]

В свое время столкнулся с неудобством в работе стандартного DbGrid. Прокрутка колесиком мыши работает только по видимой части DbGrid (та что на экране).

Я пользуюсь RxDbGrid или EhGrid
В них прокрутка работает без проблем.


 
Andrews ©   (2003-04-10 16:13) [3]

Спасибо за инфу :o)



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.02 c
14-91532
p@s
2003-04-10 12:31
2003.04.28
Нужен компонент TVCLScriptControl


14-91460
Юный_программер
2003-04-09 14:16
2003.04.28
А где достать и как установить Profesional Version QuickReport-а?


3-91225
xxxCrazyManxxx
2003-04-10 21:09
2003.04.28
Помогите на SQL реализовать алгоритм исключающий повторяющиеся


14-91478
kostya2000
2003-03-18 18:56
2003.04.28
---|Ветка была без названия|---


1-91376
Oleg__
2003-04-16 11:18
2003.04.28
Проверка, работает ли еще программа?




   Наверх