Win32 / OSX中使用Showmodal的嵌套表单

时间:2015-06-09 09:16:59

标签: macos delphi firemonkey delphi-xe7 multiplatform

我有一种情况,我有3个表格。我从Form2打开Form1,从Form3打开Form2

Form2显示为ModalForm,Form3不是。

当我在 Windows 中运行此项目时,我可以在Form2Form3之间切换,但在关闭{{1}之前我无法返回Form1 (如预期的那样)。

OSX 中,Form2Form3后面打开,在我关闭Form2之前无法加入(不是预期的)。

多平台项目的通常设计理念是什么?

如果父窗体是模态,我是否应该始终以与父窗体相同的状态打开Childform?

1 个答案:

答案 0 :(得分:1)

我将其设置为从主窗体(Form3)打开非模态窗体(Form1)的位置。这样,毫无疑问它的亲子关系。我在Form2创建Form1之后,但在调用Form2 ShowModal用来打开Form2之前,将Form3初始化的方法放入Form2 }。在Form3需要传递到Form1的调用中包含所有参数。

此方法消除了Form2Form3之间的明确循环引用,并使Form2sh: rsync: command not found 无关。