Почему мой TFrame не «видит» опубликованное сообщение?

Я только недавно начал активно использовать TFrames (хорошо, да, я жил под камнем ...). Я думал, что фреймы поддерживают объявление метода передачи сообщений - и я видел много примеров этого. Так почему же этот простой тестовый модуль для TFrame никогда не видит сообщения, которое он отправляет самому себе? (Я создал тест, когда выяснил, что обработчики сообщений не вызываются в моем большом приложении.)

unit JunkFrame;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls;

const
  DO_FORM_INITS = WM_USER + 99;

type
  TFrame1 = class(TFrame)
    Panel1: TPanel;
  private
    procedure DoFormInits(var Msg: TMessage); message DO_FORM_INITS;
  public
    constructor Create(AOwner: TComponent); override;
  end;

implementation

{$R *.dfm}

constructor TFrame1.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  PostMessage(self.Handle, DO_FORM_INITS, 0, 0);
end;

procedure TFrame1.DoFormInits(var Msg: TMessage);
begin
  ShowMessage('In DoFormInits!');
end;

end.

Этот фрейм содержит только TPanel, а фрейм используется в простой основной форме, которая содержит только фрейм и кнопку «Закрыть».

Что мне не хватает?

8
задан Mark Wilsdorf 22 April 2011 в 13:08
поделиться