我一直试图用hiden主表单启动我的应用程序,但没有运气。它
编译和一切,但当我运行它时,我得到运行时错误。当我使用计时器并将其设置为1毫秒,然后调用Application.MainForm.Hide
它隐藏但它闪烁我不希望发生这种情况
program Project1;
uses
FMX.Forms,
Unit1 in 'Unit1.pas' {Form1};
{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.MainForm.Visible := false;
Form1.Visible:=false;
Application.Run;
end.
答案 0 :(得分:6)
在FireMonkey应用程序中,自动创建的表单(已创建)和MainForm
属性在Application.Run
方法中指定。因此导致访问冲突的原因是MainForm
属性和form1
变量为零。
要访问此类属性,您必须先执行RealCreateForms
方法
begin
Application.Initialize;
Application.CreateForm(TForm2, Form1);
Application.RealCreateForms;
//Application.MainForm.Left:=-Application.MainForm.Width;
Application.MainForm.Visible:=False;
Application.Run;
end.
答案 1 :(得分:0)
更简单的方法-覆盖CanShow:
type
TfrmMain = class(TForm)
public
function CanShow: Boolean; override;
end;
...
function TfrmMain.CanShow: Boolean;
begin
Result := False; // Or return True when it's OK to show
end;