Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.03.03;
Скачать: CL | DM;

Вниз

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

 
Lisa ©   (2004-02-04 13:55) [0]

Проблема такая: скроллировать можно только в пределах видимых строчек, выше или ниже он двигаться не позволяет. Как это можно решить?


 
Вованчик ©   (2004-02-04 14:09) [1]

Грид из EHLib или переопределять событие от колесика


 
Lisa ©   (2004-02-04 14:14) [2]

а что это за библиотека?


 
Deniz ©   (2004-02-04 14:14) [3]

... или поставить дрова от мыши :)


 
Вованчик ©   (2004-02-04 14:19) [4]

http://www.ehlib.com


 
sniknik ©   (2004-02-04 14:29) [5]

type
TMyDBGrid = class(TDBGrid);

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

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

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

и вся обработка, EHLib не нужен.


 
paul_k ©   (2004-02-04 16:04) [6]

2 sniknik
Спасибо большое
Действительно просто... в смысле использовать ниписанное
А можно прокомментировать почему и как оно работает?


 
sniknik ©   (2004-02-04 17:41) [7]

определяем свой класс для доступа к private методам/переменным.
пишем обработку события OnMouseWheel: TMouseWheelEvent; (можно хелп посмотреть)
заменяем указатель события в компоненте на наш.
TComponent (от которого грид наследуется это позволяет) свойство
property OnMouseWheel: TMouseWheelEvent read FOnMouseWheel write FOnMouseWheel;
FOnMouseWheel после присвоения уже не nil а указательна нашу процедуру.
а на реальном событии оно вызывается если определено
function TControl.DoMouseWheel(Shift: TShiftState; WheelDelta: Integer;
MousePos: TPoint): Boolean;
var
IsNeg: Boolean;
begin
Result := False;
if Assigned(FOnMouseWheel) then
FOnMouseWheel(Self, Shift, WheelDelta, MousePos, Result);
if not Result then
.....


 
paul_k ©   (2004-02-05 11:49) [8]

Спасибо большое за комментарий...
теперь бы все это в фак положить, а то вопрос регулярный а ковырять архивы форума через полтора месяца не все догадаются.



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

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

Наверх




Память: 0.48 MB
Время: 0.015 c
6-6171
NewD
2003-12-26 13:46
2004.03.03
Как переадресовать запрос на др. комп. в др. сети


1-6106
Ал
2004-01-23 13:38
2004.03.03
Функция в Делфи


3-5973
phantom2040
2004-02-05 13:34
2004.03.03
По набивке таблицы


3-5983
Filat
2004-02-06 13:47
2004.03.03
IBTable1.Filter:= - смех сквозь слёзы или где собака порылась?


4-6277
ANT0
2003-12-26 09:22
2004.03.03
Копирование файлов