![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ctrl+Tab в дочернем окне [D7, WinXP]
shc © (2004-09-15 12:16:00)Добрый день, мастера. Есть проблема. По умолчанию (и привычке) переход между закладками PageControla возможно по Ctrl+Tab. Но в дочернем окне (MDI) по этой комбинации происходит переход между дочерними окнами.
Как можно отловить эту комбинацию для перехода по закладкам
shc (2004-09-17 12:06:00) [1]Спасибо Abel.
Действительно, все проблемы исчезли после описания процедуры в дочернем окне.
shc (2004-09-15 15:58:00) [2]Именно из-за этого названия и переспрашивал см.4
Amoeba (2004-09-15 14:55:00) [3]procedure TMDIChild.ApplicationEventsMessage(var Msg: tagMSG; var Handled: Boolean);
Смотри внимательнее.
shc (2004-09-15 14:47:00) [4]> Amoeba
Сижу на работе. Делфя под рукой нету. Дома Инета нету. Лучше уточнить.
Amoeba (2004-09-15 14:34:00) [5]А из заголовка метода разве не видно?
shc (2004-09-15 14:30:00) [6]Если не трудно, то можно уточнить: это процедура объявляется в дочерней форме или в главной (просто я объявлял в главной очень похожий ход)
Abel (2004-09-15 14:13:00) [7]Вот работающий код (проверено):
procedure TMDIChild.ApplicationEventsMessage(var Msg: tagMSG; var Handled: Boolean);
begin
if (Self.Active) and
(Msg.message = wm_keydown) and
(Msg.wParam = vk_tab) and
((GetKeyState(VK_CONTROL) and 128) = 128) then
begin
if pc.ActivePageIndex = (pc.PageCount - 1) then
pc.ActivePageIndex := 0
else
pc.ActivePageIndex := pc.ActivePageIndex+1;
Handled := True;
end;
end;
shc (2004-09-15 13:52:00) [8]Пробывал. Проблема в том, что, по-моему, на одно нажатие комбинации, несколько раз выполняется код.
Abel (2004-09-15 13:37:00) [9]Попробуйте TApplicationEvents.OnMessage(var Msg: tagMSG; var Handled: Boolean) например...