Форум: "Основная";
Текущий архив: 2004.09.19;
Скачать: [xml.tar.bz2];
ВнизApplication Messages Найти похожие ветки
← →
dmk © (2004-09-04 17:59) [0]Имеется MDIForm. В ней постепенно открываются Child"ы и
нужно сделать обработку нажатий клавиш по всему приложению.
В общем все работает, за исключением моментов, когда
некоторые процессы в Child"ах занимают длительное процессорное время. В этом случае обработка сообщения WM_KEYUP
не производится.
Подскажите как решить эту проблему.
Возможно я не вижу ошибки.procedure TMainForm.ApplicationEvents1Message(var Msg: tagMSG;
var Handled: Boolean);
begin
Handled := False;
case Msg.message of
WM_KEYUP: begin
If not FCanPressOverKeys then
begin
case Msg.wParam of
VK_ESCAPE: Handled := True;
VK_TAB: Handled := True;
Ord("F"): Handled := True;
Ord("W"): Handled := True;
Ord("S"): Handled := True;
end;//case
end;//If not FCanPressOverKeys
If Handled and (not FCanPressOverKeys) then
begin
FCanPressOverKeys := True;
PreviewForm.SetCaption("Can press key!");
end;
end;//WM_KEYUP
WM_KEYDOWN: begin
If FCanPressOverKeys then
begin
case Msg.wParam of
VK_ESCAPE: begin
EscPressed;
Handled := True;
end;
VK_TAB: begin
SwitchPanels;
Handled := True;
end;
Ord("F"): begin
If FFullScreenState then
RemoveFullScreen else SetFullScreen;
Handled := True;
end;
Ord("W"): begin
if CtrlKeyDown then Perform(WM_CLOSECHILD, 0, 0);
Handled := True;
end;
Ord("S"): begin
if CtrlKeyDown then SaveButtonClick(Self);
Handled := True;
end;
end;//case
If Handled then
begin
FCanPressOverKeys := False;
PreviewForm.SetCaption("Other key""s not work!");
end;
end;//If FCanPressOverKey
end;//WM_KEYDOWN
end;//case.Msg
end;
← →
Defunct © (2004-09-04 18:10) [1]> некоторые процессы в Child"ах занимают длительное процессорное время.
эти "некоторые процессы" желательно вынести в отдельные потоки, чтобы они не мешали циклу выборки сообщений.
← →
dmk © (2004-09-04 18:38) [2]В данных процессах идет постоянный вызов Application.ProcessMessages;
Вряд ли они мешают. Кроме того я выносил в отдельный поток.
Все тоже самое.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.09.19;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.077 c