在FMX多设备项目中,我会显示一个ShowModal()
的表单
对于那种形式的事件,我打电话给ShowModal()
的另一个表格而不关闭第一个表格
但是这第二种形式仍然落后于第一种形式。
如何在不关闭第一张表格的情况下将第二张表格设置在第一张表格的顶部?
我试图设置:
`FormStyle` to `StayOnTop`
Call `Form1.SendToBack`
Call Form2.BringToFront
我设法完成显示第二个表单的唯一方法是隐藏第一个表单并在第二个表单关闭时再次显示它。
但是如果可能的话,我喜欢在不隐藏第一种形式的情况下始终显示第二种形式。
这可能吗?
更新
下面有关如何创建两种表单的代码。
注意:form2和form3都是透明的。也许这与它有关?我之前遇到过这方面的问题。
procedure TForm1.Button1Click(Sender: TObject);
var
form2: TForm2;
begin
form2 := TForm2.Create(nil);
form2.ShowModal(
procedure(ModalResult: TModalResult)
begin
if ModalResult = mrOk then
begin
//Some Code
end;
end);
end;
procedure TForm2.Button1Click(Sender: TObject);
var
form3: TForm3;
begin
form3 := TForm3.Create(nil); // I've tried to set the owner, this didn't help
form3.Parent := Self; // Here I've tried to set parent form2 and even form 1
form3.ShowModal( // This form is shown behind form2
procedure(ModalResult: TModalResult)
begin
if ModalResult = mrOk then
begin
//Some Code
end;
end);
end;
因此,您可以看到2个表单创建了showmodal。 使用Show而不是showmodal打开Form1。 使用form1上的buttonclick事件创建Form2 form3也是使用buttonclick事件创建的,但是在form2上。