Еще такой маленький вопрос: будет ли вызов модальной формы MessageBox вызывать данное событие? Я попробовал немного изменить прежний модуль:
Код:
unit unIdleExample2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls;
type
TForm1 = class(TForm)
StatusBar1: TStatusBar;
Label1: TLabel;
procedure FormActivate(Sender: TObject);
private
{ Private declarations }
public
procedure Waiting(Sender: TObject; var Done: Boolean);
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Waiting(Sender: TObject; var Done: Boolean);
begin
StatusBar1.SimplePanel := True;
StatusBar1.SimpleText := 'Событие OnIdle';
Done := True;
end;
procedure TForm1.FormActivate(Sender: TObject);
var
i: Integer;
begin
Application.OnIdle := Waiting;
if Application.MessageBox('Ожидание события!!', '') = IDOK then
begin
for i := 0 to 100000 do
Label1.Caption := inttostr(i);
Application.ProcessMessages;
end;
end;
end.
Если при вызове модальной формы это событие вызывалось бы, то я увидел бы сначала текст в строке состояния, а только через некоторое время кэпшн объекта Label1, но у меня они выводятся одновременно.
