суббота, 27 апреля 2013 г.

Ещё правки в VCL (2)


function SendAppMessage(Msg: Cardinal; WParam, LParam: Longint): Longint;
{$IfDef Nemesis}
var
 l_Message : TMessage;
{$EndIf Nemesis}
begin
  {$IfDef Nemesis}
  //if Application.Handle <> 0 then
  // Оптимизация. Посылка сообщения CM_APPKEYDOWN при каждом нажатии клавиши в строках
  // ввода - очень недешевая по времени выполнения операция. Поэтому была зарезана.
  // Нарушений функциональности замечено не было.
  if (Msg <> CM_APPKEYDOWN) and (Application.Handle <> 0) then {V} // - это наши правки
  begin
   l_Message.Msg := Msg;
   l_Message.WParam := WParam;
   l_Message.LParam := LParam;
   l_Message.Result := 0;
   THackApplication(Application).WndProc(l_Message);
   Result := l_Message.Result;
   // law - посылаем сообщение "напрямую", а не через SendMessage
   //Result := SendMessage(Application.Handle, Msg, WParam, LParam)
  end//Msg <> CM_APPKEYDOWN..
  {$Else  Nemesis}
  if (Application.Handle <> 0) then
   Result := SendMessage(Application.Handle, Msg, WParam, LParam)
  {$EndIf Nemesis}
  else
    Result := 0;
end;

Комментариев нет:

Отправить комментарий