Файл: ...\Samples\Solution\Forms\Launch.scx

Этот образец демонстрирует запуск множества экземпляров форм. aForms представляет собой свойство типа "массив" формы, которая запускает множество экземпляров. Приведенный ниже программный код связан с событием Click командной кнопки, которая запускает множество форм:

Получаем номер последнего элемента массива

 CopyCode imageСкопировать код
nInstance = ALEN(THISFORM.aForms)

Определяет свойства Top и Left для создания каскада окон новых форм. Эти установки посылаются в качестве параметров, когда запускаются экземпляры формы.

 CopyCode imageСкопировать код
IF nInstance > 1 AND ;
   TYPE('THISFORM.aForms[nInstance -1]') = 'O'
   nFormTop = THISFORM.aForms[nInstance -1].Top + 1
   nFormLeft = THISFORM.aForms[nInstance -1].Left + 1
ELSE
   nFormTop = 1
   nFormLeft = 1
ENDIF

Устанавливаем заголовок, для отображения номера экземпляра

 CopyCode imageСкопировать код
cFormCaption = "Instance" + ALLTRIM(STR(nInstance))

Запускаем формы и присваиваем объектную ссылку элементу массива. Ключевое слово Linked указывает, что все экземпляры будут высвобождены из памяти когда будет высвобожден массив. Без LINKED, множество экземпляров останутся висеть в памяти после уничтожения массива.

 CopyCode imageСкопировать код
DO FORM Multi NAME THISFORM.aForms[nInstance] WITH ;
   nFormTop, nFormLeft, cFormCaption LINKED

Изменяйте размер массива для того, чтобы можно было запускать последующие экземпляры формы .

 CopyCode imageСкопировать код
DIMENSION THISFORM.aForms[nInstance + 1]

Смотрите также