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

Вниз

Как прокручивать TGrid колесом мыши?   Найти похожие ветки 

 
Vi0let   (2003-12-30 14:15) [0]

А то, при движении колеса, меняется активная строка только в видимом списке грида, а сам список не прокручивается...


 
Vi0let   (2003-12-30 14:19) [1]

... TDBGrid


 
asp   (2003-12-30 14:20) [2]

Либо воспользоваться RxDBGrid, либо наследовать от стандартного свой, с обработкой MouseWheel.


 
Vi0let   (2003-12-30 14:22) [3]

как реализовать обработку MouseWheel ?


 
Vemer   (2003-12-30 14:23) [4]

Либо написать общий обработчик колеса, который нажатия клавиш вверх/вниз имитирует, образец вроде на сайте АП есть.
У меня работает.


 
asp   (2003-12-30 14:29) [5]

Переопределяй от TWinControl"а в protected
function DoMouseWheel(Shift: TShiftState; WheelDelta: Integer;
MousePos: TPoint): Boolean; dynamic;
function DoMouseWheelDown(Shift: TShiftState; MousePos: TPoint): Boolean; dynamic;
function DoMouseWheelUp(Shift: TShiftState; MousePos: TPoint): Boolean; dynamic;


 
sniknik   (2003-12-30 14:57) [6]

TMyDBGrid = class(TDBGrid)
procedure WMMouseWheel(var Msg: TWMMouseWheel); message WM_MOUSEWHEEL;
end;

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

естественно дальше нужно TMyDBGrid вместо TDBGrid использовать.


 
Vi0let   (2003-12-30 19:21) [7]

интересно, попробую ...


 
dimm22   (2003-12-30 19:38) [8]

DBGridEh из библиотеки EhLib. Много чего полезного умеет делать.


 
Vi0let   (2004-01-01 14:56) [9]

sniknik
> естественно дальше нужно TMyDBGrid вместо TDBGrid использовать
я так понимаю, в этом случаем у меня 2 варианта:
1) создавать объект TMyDBGrid в рантайме, и все значения свойств кодом задавать
2) создавать компонент наследующий грид с новым свойством
я правильно понял?
а нет ли менее хлопотного варианта?


 
sniknik   (2004-01-01 18:58) [10]

....
А ивано-франковец ему отвечает: ну, так это, короче, не проблема.
Это вы неделю не покурите, и она сама по себе рассосется.
Тут все растаманы(наркоманы) как зашумели: та, шо ты гонишь! Прямо как психиатр, в натуре. Это же как можно, целую неделю не курить, это же вобще умом поехать можно. А ивано-франковец им говорит: тогда давайте другой способ, менеее напряжный.
.... ;о))
© сага и мыше и наркомане.

еще способ менее напряжный(?) сам только что сделал(вроде работает, с тем что в десигне), конечно наверняка ктото чемто подобным уже давно пользуется.
но вообще мне удобнее первым, т.к. не только прокрутку перекрываю обычно, еще и DrawCell, WMVScroll и и еше коечего цепляю (тут уж проше в рантайм создать и параметры прописать, меньше получается).

type
TMyDBGrid = class(TDBGrid);

TForm1 = class(TForm)
.....
procedure FormCreate(Sender: TObject);
private
procedure MyMouseWheel(Sender: TObject; Shift: TShiftState;
WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
TMyDBGrid(DBGrid1).OnMouseWheel:= MyMouseWheel;
end;

procedure TForm1.MyMouseWheel(Sender: TObject; Shift: TShiftState;
WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
begin
if (Sender is TDBGrid) and TDBGrid(Sender).DataSource.DataSet.Active then
begin
if WheelDelta > 10 then TDBGrid(Sender).DataSource.DataSet.Prior;
if WheelDelta < -10 then TDBGrid(Sender).DataSource.DataSet.Next;
Handled:= true;
end;
end;


 
Vi0let   (2004-01-03 11:13) [11]

благодарю, всё получилось



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

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

Наверх




Память: 0.47 MB
Время: 0.007 c
3-93341
MagaSoft
2004-01-04 21:28
2004.01.29
Суммирование в БД Access


1-93486
-=Sash=-
2004-01-15 14:04
2004.01.29
Создать свою форму


9-93317
inc-viz
2003-07-13 14:15
2004.01.29
Delphix - вывод спрайтов


1-93438
Жук
2004-01-19 11:41
2004.01.29
Internal error: BC1930


1-93566
snake1977
2004-01-15 17:16
2004.01.29
MDI + DLL





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