"EhLib.Com" https://forum.ehlib.com/ru/ |
|
DBGridEh STFilter перехват скролла https://forum.ehlib.com/ru/viewtopic.php?f=4&t=2749 |
Страница 1 из 1 |
Автор: | aford [ 27 фев 2019, 15:12 ] |
Заголовок сообщения: | DBGridEh STFilter перехват скролла |
В продолжение предыдущей темы, как на фильтре перехватить скролл? Стандартным способом Код: procedure TFrmMain.FormMouseWheel(Sender: TObject; Shift: TShiftState; WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean); var c: TControl; mp: TPoint; begin ShowMessage('a'); mp:= ScreenToClient(MousePos); c:= ControlAtPos(mp, False, True); if c <> nil then TProtectControl(c).DoMouseWheel(Shift, WheelDelta, mp); end; Не получается... |
Автор: | aford [ 28 фев 2019, 12:23 ] |
Заголовок сообщения: | Re: DBGridEh STFilter перехват скролла |
Перехватил так: Код: procedure TFrmMain.ApplicationEvents1Message(var Msg: tagMSG; var Handled: Boolean); begin // если крутим колесиком в фильтре табл. DBGrdEhWeights if (Msg.message = WM_MOUSEWHEEL) and (DBGrdEhWeights.FilterEditMode) then begin // очищаем сообщение Msg.lParam:= 0; Msg.wParam:= 0; end; Чтобы не выскакивала ошибка просто отменяю скролл, а по хорошему надо как-то заполнить значения списка FilterEdit, они прекрасно заполняются при клике на кн. выпадения списка. Пробовал разные процедуры, но все без толку: Код: //1:
DBGrdEhWeights.OnFilterGetItemsList(FrmMain); DBGrdEhWeights.UpdateFilterEditProps(DBGrdEhWeights.Col-1);} //2: with DBGrdEhWeights do begin F:= Columns[Col-1].STFilter; F.GetFieldValueList; Columns[Col-1].GetLookupValue; end; |
Страница 1 из 1 | Часовой пояс: UTC |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |