Я только недавно начал активно использовать 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, а фрейм используется в простой основной форме, содержащейтолько рамка и кнопка закрытия.
Чего мне не хватает?