Delphi MDIChild窗体在模式模式下打开时会闪烁



我有一个MDIChild表单,打开如下:

Application.CreateForm (TForm1, Form1);

示例MDIChild表单类

unit Unit1;  
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs;
type
TForm1 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
end.

但有时我需要这个模态形式。。。通过一些技巧,我调整了我的代码如下,以在模式下打开它:

Application.CreateForm (TForm1, Form1); 
Form1.FormStyle: = fsNormal; 
Form1.Visible: = False; 
Form1.Position: = poMainFormCenter; 
Form1.ShowModal;

这样它就工作了,但它会一直闪烁,直到出现在屏幕上。。

我想知道是否有任何方法可以在您到达Form1.ShowModal呼叫之前不闪烁/显示表格;

type
TfrmManProduto = class(TForm)
public
constructor Create(AOwner: TComponent; isModal: Boolean); reintroduce;
end;
implemetation
TfrmManProduto.Create(AOwner: TComponent; isModal: Boolean);
begin
inherited Create(AOwner);
Position := poMainFormCenter;
if not (isModal) then
begin
FormStyle := fsMDIChild;
Visible := True;
end;
end;

调用MDIChild样式(非模态(

frmManProduto := TfrmManProduto.Create(Application, False);

调用普通风格(模式(

frmManProduto := TfrmManProduto.Create(Application, True);
frmManProduto.ShowModal();

最新更新