一个模式窗体的简单有关问题! 怎样从前到后得到所有模式窗体

一个模式窗体的简单问题! 怎样从前到后得到所有模式窗体?
假如我在主窗体   MainForm   中模式显示了   Form1,又在   Form1   上模式显示了   Form2,又在   Form2   上模式显示了   Form3。

所有窗体都存在了   Forms   数组中。
我可以访问   Forms   数组,我也知道   Form   的个数:FormCount

我们知道根据模式窗体的特性,Form1、Form2、Form3   它们之间的显示顺序,即谁靠前谁靠后,这个顺序是不会变的。
怎样遍历   Forms   数组,从而知道哪个窗体最靠前,哪个窗体其次,哪个窗体再其次?

说明一点,我可以通过   if   fsModal   in   Forms[i].FormState   then   来判断这个窗体是否是模式窗体。

------解决方案--------------------
Screen.Forms 是按照 Z order 排序的,就是说,最前面的窗口,是Screen.Forms[0]