Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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?


Наверх

Титульная страница Поиск, карта сайта Написать письмо