powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / DbgridEh STFilter перехват скролла
8 сообщений из 8, страница 1 из 1
DbgridEh STFilter перехват скролла
    #39780056
aford
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, как на фильтре перехватить скролл? Стандартным способом
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
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;



Не получается...
...
Рейтинг: 0 / 0
DbgridEh STFilter перехват скролла
    #39780243
aford
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дело в том, что при скролле мышкой по фильтру выскакивает ошибка List Index out of bounds, какой ехлибовский метод переписывать я пока не знаю, поэтому хоть так отловить, просто запрещать скролл. 2-й день сижу.
...
Рейтинг: 0 / 0
DbgridEh STFilter перехват скролла
    #39780418
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aford,

анализируй значение
Код: pascal
1.
if WheelDelta <> 0 then ... ///че-та делаем
...
Рейтинг: 0 / 0
DbgridEh STFilter перехват скролла
    #39780427
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
afordпри скролле мышкой по фильтру
если речь про фильтры эхгрида, то в гриде наверняка есть свое событие скроллинга. Используй его со своими параметрами
...
Рейтинг: 0 / 0
DbgridEh STFilter перехват скролла
    #39780448
aford
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Док, пробовал, чет не получается) Перехватил так:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
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, они прекрасно заполняются при клике на кн. выпадения списка. Пробовал разные процедуры, но все без толку:

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
    //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;


...
Рейтинг: 0 / 0
DbgridEh STFilter перехват скролла
    #39780536
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aford,

у эхгрида ошибка "List Index out of bounds", похоже, генетическая. В старом проекте с EhLib 4.х она у меня тоже периодически вываливается на ровном месте. Похоже, бажок так и не выловили.

А я пока до дома добраться не могу (по 3-ём работам мотаюсь), чтобы проверить свои советы :)
...
Рейтинг: 0 / 0
DbgridEh STFilter перехват скролла
    #39780577
aford
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Док, в 5й версии можно выйти из положения по TCustomDBGridEh.CMMouseWheel, а в 7-й она уже почему-то не отрабатывает, только приведенным мной способом выше. Ну да ладно, у меня теперь вопрос по ошибке))
...
Рейтинг: 0 / 0
DbgridEh STFilter перехват скролла
    #39780654
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
afordу меня теперь вопрос по ошибке
имхо, тебе на форум или в багтрекер к Большакову надо. Воспроизводимый пример сделай только
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / DbgridEh STFilter перехват скролла
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]