Ich habe ein OnAfterShow Ereignis mittels PostMessage implementiert, weil bestimmte Eigenschaften erst danach zur Verfügung stehen:
Delphi-Quellcode:
public
{ Public declarations }
procedure WndProc(var Msg: TMessage); override;
// ...;
procedure TfrmPreview.FormShow(Sender: TObject);
begin
PostMessage(frmPreview.Handle, WM_MP_AFTERSHOW, 0, 0);
end;
// ...;
procedure TfrmPreview.WndProc(var Msg: TMessage);
begin
case Msg.Msg of
WM_MP_AFTERSHOW:
begin
//FirstTime := False;
FFotoBook.PageParent := Self;
FFotoBook.ScaleFactor := FFotoBook.CalcScaleFactor;
PageID := 0;
FFotoBook.DisplayMode := dmPreview;
FFotoBook.Display(PageID);
UpDateLabel;
end;
end;
inherited;
end;
Ich bekomme aber nach dem Aufruf von PostMessage eine AccessViolation. Klick eich die Weg wird mein Formular angezeigt, allerdings ohne das gemacht zu haben, was in der WndProc steht, da kommt er erst gar nicht hin.