Форум: "Базы";
Текущий архив: 2003.04.28;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.009 c