Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.12.2019, 15:21   #1
rita616
Пользователь
 
Регистрация: 19.12.2019
Сообщений: 69
По умолчанию RxLookupEdit

Здравствуйте. Подскажите пожалуйста, как сделать прокрутку в выпадающем списке RxLookupEdit при помощи колесика мыши.
Заранее спасибо.
rita616 вне форума Ответить с цитированием
Старый 19.12.2019, 18:23   #2
beegl
instagram
Участник клуба
 
Аватар для beegl
 
Регистрация: 24.05.2008
Сообщений: 1,453
По умолчанию

Цитата:
Сообщение от rita616 Посмотреть сообщение
прокрутку в выпадающем списке RxLookupEdit при помощи колесика мыши
примерно так:

Код:
procedure TForm1.RxLookupEdit2Change(Sender: TObject);
begin
RxLookupEdit2.Perform(EM_SCROLLCARET, Pred(RxLookupEdit2.ControlCount) {0}, 0);
SendMessage(RxLookupEdit2.Handle, EM_SCROLLCARET,0,0);
end;
или сообщение это слать:
Код:
EM_SCROLL
beegl вне форума Ответить с цитированием
Старый 20.12.2019, 09:01   #3
rita616
Пользователь
 
Регистрация: 19.12.2019
Сообщений: 69
По умолчанию

beegl, не получается у меня почему-то(

Последний раз редактировалось rita616; 20.12.2019 в 10:30.
rita616 вне форума Ответить с цитированием
Старый 20.12.2019, 12:52   #4
rita616
Пользователь
 
Регистрация: 19.12.2019
Сообщений: 69
По умолчанию

Код:
procedure TMain1.AppMessage(var Msg: TMsg; var Handled: Boolean);
var   i: SmallInt;
begin
  if Msg.message = WM_MOUSEWHEEL then
  begin
    Msg.message := WM_KEYDOWN;
    Msg.lParam := 0;
    i := HiWord(Msg.wParam);
    if i > 0 then Msg.wParam := VK_UP else Msg.wParam := VK_DOWN;
    Handled := False;
  end;
end;
вот код нашла тут на форуме, заработало, но у меня на форме по кнопкам вызываются другие формы, а на кнопках горячие клавиши F1, F2 и т.д. вот они перестали работать из-за этого кода
Подскажите, пожалуйста, что делать
rita616 вне форума Ответить с цитированием
Старый 23.12.2019, 11:41   #5
Heneken87
Форумчанин
 
Регистрация: 27.04.2012
Сообщений: 219
По умолчанию

Цитата:
Сообщение от rita616 Посмотреть сообщение
Код:
procedure TMain1.AppMessage(var Msg: TMsg; var Handled: Boolean);
var   i: SmallInt;
begin
  if Msg.message = WM_MOUSEWHEEL then
  begin
    Msg.message := WM_KEYDOWN;
    Msg.lParam := 0;
    i := HiWord(Msg.wParam);
    if i > 0 then Msg.wParam := VK_UP else Msg.wParam := VK_DOWN;
    Handled := False;
  end;
end;
вот код нашла тут на форуме, заработало, но у меня на форме по кнопкам вызываются другие формы, а на кнопках горячие клавиши F1, F2 и т.д. вот они перестали работать из-за этого кода
Подскажите, пожалуйста, что делать
К сожалению полную реализацию не дам, компонента RxLookupEdit просто нет.
Ниже приведенный код перехватывает событие "прокрутки". Работает только если форма активна. Вместо сообщений "Верх- Вниз" можете установить Focus в компонент и эмулировтаь нажатие клавиш верх вниз например, либо(если компонент позволяет) сразу скролить.
Код:
Type
  TМояФорма = class(TForm)
    procedure Wheel (var Msg : TWMMouseWheel); message WM_MOUSEWHEEL;

implementation

procedure TМояФорма.Wheel(var Msg: TWMMouseWheel);
begin
  if Msg.WheelDelta < 0  then
  ShowMessage('Кручу вниз')
  else ShowMessage('Кручу вверх');
end;
Пишу много и развернуто
Heneken87 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск