Форум: "Сети";
Текущий архив: 2004.09.26;
Скачать: [xml.tar.bz2];
ВнизКак в TWebBrowser е включить бэкспэйс, чтобы возвращаться на Найти похожие ветки
← →
Алекс А (2004-07-10 03:33) [0]предыдущую страницу ? Вместо TWebBrowser"а использую TEmbeddedWB.
Причём нажатия клавиш на браузере не отлавливаютя в TForm при включённом KeyPreview. И как отловить нажатие этой клавиши вообще непонятно.
← →
nikkie © (2004-07-12 02:06) [1]
function TDMCChildForm.WebBrowserTranslateAccelerator(const lpMsg: PMsg;
const pguidCmdGroup: PGUID; const nCmdID: Cardinal): HRESULT;
type
PWMKey = ^TWMKey;
begin
if lpMsg.message = WM_KEYDOWN then
begin
if MainForm.ActionList.IsShortCut(PWMKey(LongInt(lpMsg) + sizeof(HWND))^) then
begin
Result := S_OK;
Exit;
end;
end;
Result := S_FALSE;
end;
← →
Алекс А (2004-07-15 01:37) [2]
> nikkie © (12.07.04 02:06) [1]
Кнопку бэкспэйс этот код не отслеживает. Некоторые кнопки отслеживае, а именно эту нет. :) Вот что делать ? Как сам Интернет Эксплорер определяет нажатие на неё ?
← →
Piter © (2004-07-15 02:47) [3]Алекс А (15.07.04 1:37) [2]
Кнопку бэкспэйс этот код не отслеживает. Некоторые кнопки отслеживае, а именно эту нет
тем не менее, данные разведки показывают, что все отслеживается нормально.
Более того, если не обработать данное событие и не вернуть s_ok, то браузер автоматически по backspace возвращается на предыдущую страницу (если она есть).
В общем, код в студию.
← →
Алекс А (2004-07-15 04:58) [4]
> Piter © (15.07.04 02:47) [3]
> тем не менее, данные разведки показывают, что все отслеживается
> нормально.
>
> Более того, если не обработать данное событие и не вернуть
> s_ok, то браузер автоматически по backspace возвращается
> на предыдущую страницу (если она есть).
Ничего не возвращает. Ни с этим кодом, ни без этого кода, никак. По Альт и стрелкам - переходит. А по бэкспэйс - нет.
> В общем, код в студию.
Какой код ?
Код Интернет Эксплорера в Майкрософт.
Код embeddedwb на www.euromind.com/iedelphi
← →
Piter © (2004-07-15 14:19) [5]Алекс А (15.07.04 4:58) [4]
ТВОЙ блин код обработки TranslateAccelerator
← →
nikkie © (2004-07-15 16:50) [6]именно BkSpace не передается браузером в TranslateAccelerator. можешь ловить его в Application.OnMessage.
ЗЫ это все опера дурацкие интерфейсные идеи навевает...
имхо совсем неочевидно, что BkSpace должен работать как "назад".
и уж тем более не очевидно, что Shift+BkSpace должно работать как "вперед".
Alt+влево/вправо логичнее гораздо выглядит...
а между прочим, надо еще проверять, где фокус находится - если в текстовом поле, то BkSpace должен стандартно работать.
← →
Алекс А (2004-07-16 01:19) [7]
> Piter © (15.07.04 14:19) [5]
> Алекс А (15.07.04 4:58) [4]
>
> ТВОЙ блин код обработки TranslateAccelerator
См. второй постинг в ветке.
> nikkie © (15.07.04 16:50) [6]
> Alt+влево/вправо логичнее гораздо выглядит...
Только требует двух рук.
> это все опера дурацкие интерфейсные идеи навевает...
Нет. Виноваты во всём Майкрософт, своим кривым и глючным браузером. Одни клавиши в одном месте обрабатываются, другие в другом, третьи в третьем. Чтоб извлечь картинки надо сорок тегов обработать. Уж сколько лет браузеру, не могут все дыры залатать. Козлы.
← →
Piter © (2004-07-18 20:49) [8]nikkie © (15.07.04 16:50) [6]
это все опера дурацкие интерфейсные идеи навевает...
ОПЕРА?! Она-то здесь при чем? Backspace - это было назад, по моему, в IE 3.x Об Опере еще никто не знал!
именно BkSpace не передается браузером в TranslateAccelerator
а у меня передается... может, ты просто фокус не установил на браузере? Ведь у браузера генерируется TranslateAccelerator только когда фокус на нем...
См. второй постинг в ветке
что, прямо такой же код и у тебя? :)
Интересно. Насколько понимаю, это вырезка из DMClient, очень интересно... У тебя тоже главная форма MainForm? :)
И на ней лежит ActionList? :)
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2004.09.26;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.037 c