Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Forms Delphi xe3主窗体隐藏_Forms_Delphi_Hide_Firemonkey_Delphi Xe3 - Fatal编程技术网

Forms Delphi xe3主窗体隐藏

Forms Delphi xe3主窗体隐藏,forms,delphi,hide,firemonkey,delphi-xe3,Forms,Delphi,Hide,Firemonkey,Delphi Xe3,我一直在尝试使用hiden主窗体启动我的应用程序,但没有成功。信息技术 编译和所有操作,但当我运行它时,会出现运行时错误。当我使用定时器并将其设置为1毫秒,然后调用Application.MainForm.Hide时,它会隐藏但会闪烁,我不希望发生这种情况 program Project1; uses FMX.Forms, Unit1 in 'Unit1.pas' {Form1}; {$R *.res} begin Application.Initialize; Applic

我一直在尝试使用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.

在FireMonkey应用程序中,自动创建的表单(已创建)和
MainForm
属性在
application.Run
方法中分配。因此导致访问冲突的原因是
MainForm
属性和
form1
变量为nil

为了访问这些属性,必须首先执行该方法

begin
  Application.Initialize;
  Application.CreateForm(TForm2, Form1);
  Application.RealCreateForms;
  //Application.MainForm.Left:=-Application.MainForm.Width;
  Application.MainForm.Visible:=False;
  Application.Run;
end.

更简单的方法-覆盖可以显示:

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;

如果你不告诉我们什么是运行时错误,“我得到运行时错误”是毫无意义的。发帖时,请记住,我们看不到你的屏幕,也看不到你的心思,因此你需要具体说明,并在问题中提供详细信息。如果您不向我们提供用于帮助您的信息,我们将帮不上什么忙。:-)与不同平台的警告相关的答案