Я пытаюсь ответить на некоторые сообщения Windows и приложения , но получаю их несколько раз.
Например, я пишу следующий код, чтобы показать окно сообщения при изменении даты системы с помощью WM_TIMECHANGE.WMTimeChange выполняется более одного раза, и я вижу несколько (чаще всего два или три) ящиков сообщений один за другим.Может быть, я что-то упускаю?
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm1 = class(TForm)
protected
procedure WMTimeChange(var Msg: TMessage) ; message WM_TIMECHANGE;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{ TForm1 }
procedure TForm1.WMTimeChange(var Msg: TMessage);
begin
showmessage('Date/Time has changed!');
end;
end.
Тестирование в Windows XP.
РЕДАКТИРОВАТЬ: Просто чтобы уточнить, я намерен понять ПОЧЕМУ , что происходит, а не какобойти несколько звонков.В любом случае, если ответ на этот вопрос невозможен, я, вероятно, приму один ответ на более поздний.
EDIT2: Удален тег Delphi, поскольку он, похоже, не является проблемой Delphi.