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

Вниз

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

 
BJValentine   (2003-03-31 11:51) [0]

Есть мышь со скролингом. DBGrid не совсем качественно реагирует на событие скролинга мыши. Каким образом можно добиться корректной работы скролинга с DBGridom?


 
sniknik   (2003-03-31 12:55) [1]

добавить свой класс и использовать его заместо TDBGrid

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;


 
BJValentine   (2003-03-31 12:57) [2]

Я так понимаю, что этот вопрос не совсем касается баз данных. Здесь скорее всего работа с сообщениями Win32. Не понимаю это действие модератора... Ну да ладно, ребята, подскажите хотя бы какое сообщение возникает при прокрутке скролинга мыши?


 
sniknik   (2003-03-31 12:58) [3]

опять забыл :о(
тоже понадобится (хотя конечно не обязательно, можно руками выделить)

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


 
Kuusiniemi   (2003-03-31 13:36) [4]

Или использовать RXDBGrid.


 
Alexandr   (2003-03-31 14:11) [5]

DBGridEh


 
Diamond Cat   (2003-03-31 19:23) [6]

обычно это WM_MOUSEWHEEL, но некоторые драйвера мыши действуют хитрее, к сожалению не все окна способны обработать это сообщение, поэтому иногда используется wm_hscroll или wm_vscroll


 
Fighter   (2003-04-01 09:59) [7]

Я сделал наследника TDBGrid и работаю только с ним, пока всё работает без проблем.

unit MydbGrid;

interface

uses Messages, Classes, dbgrids;

type
TDBGridScroll= class(TDBGrid)
private
procedure WMMouseWheel( var Message: TMessage); message WM_MOUSEWHEEL;
end;

procedure Register;

implementation

{ TDBGridScroll }

procedure TDBGridScroll.WMMouseWheel( var Message: TMessage);
begin
if Message.wParam>0 then
DataSource.DataSet.Prior
else
DataSource.DataSet.Next;
end;

procedure Register;
begin
RegisterComponents("Data Controls", [TDBGridScroll]);
end;

end.

Если хочешь картинку к компоненту могу выслать, или сделай сам...



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

Форум: "Базы";
Текущий архив: 2003.04.17;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.01 c
14-54789
Незнающий
2003-03-29 16:31
2003.04.17
Как подключиться к сети ФИДО?


14-54848
Neznaika
2003-04-01 13:43
2003.04.17
Прозрачный фон в RichEdite


3-54399
Shtock
2003-03-27 08:14
2003.04.17
Работа с вычисляемыми полями


3-54496
Ihtiandr
2003-03-31 10:14
2003.04.17
sorting


1-54739
oleg_SYS
2003-04-02 22:57
2003.04.17
Файлы со смешанными данными





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский