Форум: "Базы";
Текущий архив: 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