Конференция "Начинающим" » ListBox запретить реакцию на нажатие клавиш.
 
  • валя © (01.03.18 14:02) [0]
    При нажатии стрелки влево\вправо ListBox пролистывается вверх или вниз. Вобщем нужно чтобы он не реагировал на #37 #39. Такое сделать возможно?
  • Rouse_ © (01.03.18 15:00) [1]
    Отнаследуйся и запрети, чтоб глобально не ловить
  • валя © (01.03.18 16:22) [2]

    > Rouse_ ©   (01.03.18 15:00) [1]

    примерчик, если можно?
  • валя © (01.03.18 16:44) [3]
    Как отловить более-менее понятно, не понятно как в отловленном событии определить что событие пришло от определенного контрола.
  • валя © (01.03.18 16:49) [4]
    или достаточно определить событие и обработчик в классе?
  • валя © (01.03.18 18:08) [5]
    все спасибо.
  • валя © (10.03.18 21:54) [6]

    > Отнаследуйся и запрети, чтоб глобально не ловить


    Все отлавливается кроме ситуации когда нажимаешь любую клавишу и в ListBox и срабатывает пролистывание списка на строки начинающиеся на символ нажатой клавиши.  В WM_KEYDOWN запретить не получается. Подскажите как это запретить???
  • Leonid Troyanovsky © (11.03.18 09:14) [7]

    > валя ©   (10.03.18 21:54) [6]

    > начинающиеся на символ нажатой клавиши.  В WM_KEYDOWN запретить
    > не получается. Подскажите как это запретить???


    procedure TForm1.ListBox1KeyPress(Sender: TObject; var Key: Char);
    begin
      if key .. then
        key := #0;
    end;

    --
    Regards, LVT.
  • Германн © (12.03.18 01:54) [8]

    > Leonid Troyanovsky ©   (11.03.18 09:14) [7]
    >
    >

    Стрелки влево\вправо не вызывают OnKeyPress.
  • Германн © (12.03.18 02:34) [9]
    procedure TForm1.ListBox1KeyDown(Sender: TObject; var Key: Word;
     Shift: TShiftState);
    begin
     if (Key = VK_LEFT) or (Key = VK_RIGHT) then Key:=0;
    end;
 
Конференция "Начинающим" » ListBox запретить реакцию на нажатие клавиш.
Есть новые Нет новых   [134427   +35][b:0][p:0]