dred2k
![](http://forum.ru-board.com/board/avatars/private/dred2k.gif)
Full Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Prot_XT К переходу на другие контролы формы это не имеет никакого отношения. Я думаю. Следующий вариант не прошел... Кстати, есть вариант. На форме с поиском поставь KeyPreview := True, навесь на форму OnKeyDown, в нем если Enter и шифты отжаты (ну, по вкусу), проверяй - если активна нужная тебе строка ввода, то присваивай Value, как у меня в примере, ищи и AKey := 0 (т.е. дальше клавиша не пойдет). Если нет условий, нет поиска - просто не трож AKey. Должно сработать, по идее (так нажатие не дойдет до риббона, но ты свое дело сделаешь). Пробуй. Мда, "вещь в себе" этот риббон у девок... Все перехватывает, на форму клавиша не приходит. И все же я его обманул! Вот код (вставь для правого поиска в моем примере, что я ранее высылал): Код: procedure TForm3.cxBarEditItem1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); var tmpFL : Pointer; tmpB : Boolean; i : Integer; tmpStr : String; begin if((Key = VK_RETURN) and (Shift = [])) then begin tmpFL := DisableTaskWindows(dxRibbon1.Handle); tmpB := TcxTextEditProperties(TcxBarEditItem(Sender).Properties).AutoSelect; try TcxTextEditProperties(TcxBarEditItem(Sender).Properties).AutoSelect := False; TcxBarEditItem(Sender).EditValue := TcxBarEditItem(Sender).CurEditValue; tmpStr := nvl(TcxBarEditItem(Sender).EditValue, ''); ShowMessage('Search:' + #13 + tmpStr); finally Key := 0; EnableTaskWindows(tmpFL); TcxTextEditProperties(TcxBarEditItem(Sender).Properties).AutoSelect := tmpB; TcxBarEditItem(Sender).SetFocus; for i := 0 to Length(tmpStr) - 1 do begin keybd_event(VK_RIGHT, MapVirtualKey(VK_RIGHT, 0), 0, 0); keybd_event(VK_RIGHT, 0, KEYEVENTF_KEYUP, 0); end; end; end; end; | Идея в том, что сам риббон - окно. У него есть хендл. Вот мы его и делаем модальным, если произошло наше нажатие. Ну и немного шаманства для перехода в конец строки. Пробуй. На всякий случай полный проект. Пароль здешний. | Всего записей: 403 | Зарегистр. 15-02-2006 | Отправлено: 19:45 03-06-2014 | Исправлено: dred2k, 21:04 03-06-2014 |
|