Показать сообщение отдельно
  #5  
Старый 26.04.2012, 20:30
Аватар для Aleks26
Aleks26 Aleks26 вне форума
Прохожий
 
Регистрация: 19.12.2010
Сообщения: 32
Репутация: 12
По умолчанию

Еще такой маленький вопрос: будет ли вызов модальной формы 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, но у меня они выводятся одновременно.
Ответить с цитированием