Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.04.28;
Скачать: 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 вся ветка

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

Наверх




Память: 0.47 MB
Время: 0.02 c
6-91425
Silver_
2003-03-05 10:19
2003.04.28
DateTime с другого компа в LAN


3-91158
Rustik
2003-04-09 13:42
2003.04.28
Мастера подскажите пжлста Как реализовать вставку записей в базу


14-91502
anbezr
2003-04-10 16:21
2003.04.28
Как перетащить на другой комп мой репозиторий


8-91408
Кутузов Александр
2002-05-29 14:12
2003.04.28
Поддержка mp3 технологий в Delphi 5


3-91159
Knight
2003-04-09 14:13
2003.04.28
Программы скрытия дисков и управления доступом к папкам и файлам