![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
DBGrid & MouseWheel [D6]
andy11 © (2003-01-27 13:31:00)Как сделать чтобы при "вращении" колеса не просто ячейки перерисовывались, а менялась текущая запись???
Pat (2003-01-27 13:55:00) [1]
procedure TMainForm.ApplicationEvents1Message(var Msg: tagMSG;
var Handled: Boolean);
begin
if Msg.message=WM_MOUSEWHEEL then
begin
Msg.message:=WM_KEYDOWN;
if Msg.wParam>0
then Msg.wParam:=vk_up
else Msg.wParam:=vk_down;
end;
end;
sniknik (2003-01-27 13:50:00) [2]забыл в начале еще тип события прописать надо
TWMMouseWheel = packed record
Msg: Cardinal;
Keys: SmallInt;
WheelDelta: SmallInt;
case Integer of
0: (
XPos: Smallint;
YPos: Smallint);
1: (
Pos: TSmallPoint;
Result: Longint);
end;
sniknik (2003-01-27 13:49:00) [3]опиши свой класс и от него и гриды делай,
DBGrid1:= TMyDBGrid.Create (или свой компонент сделай)
класс
TMyDBGrid = class(TDBGrid)
procedure WMMouseWheel(var Message: TWMMouseWheel); message WM_MOUSEWHEEL;
end;
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;
(реализация простейшая, но работает)
Kuusiniemi (2003-01-27 13:39:00) [4]RXDbGrid - посмотрите как реализованы DoWheelMouseUp и DoWheelMouseDown
myor (2003-01-27 13:36:00) [5]table1.next?