Файл: ...\Samples\Solution\Forms\Launch.scx
Этот образец демонстрирует запуск множества экземпляров форм.
aForms
представляет собой свойство типа "массив" формы, которая запускает множество экземпляров.
Приведенный ниже программный код связан с событием Click командной кнопки, которая запускает множество форм:
Получаем номер последнего элемента массива
![]() | |
---|---|
nInstance = ALEN(THISFORM.aForms) |
Определяет свойства Top и Left для создания каскада окон новых форм. Эти установки посылаются в качестве параметров, когда запускаются экземпляры формы.
![]() | |
---|---|
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 |
Устанавливаем заголовок, для отображения номера экземпляра
![]() | |
---|---|
cFormCaption = "Instance" + ALLTRIM(STR(nInstance)) |
Запускаем формы и присваиваем объектную ссылку элементу массива.
Ключевое слово Linked указывает, что все экземпляры будут высвобождены из памяти когда будет высвобожден массив.
Без LINKED
, множество экземпляров останутся висеть в памяти после уничтожения массива.
![]() | |
---|---|
DO FORM Multi NAME THISFORM.aForms[nInstance] WITH ; nFormTop, nFormLeft, cFormCaption LINKED |
Изменяйте размер массива для того, чтобы можно было запускать последующие экземпляры формы .
![]() | |
---|---|
DIMENSION THISFORM.aForms[nInstance + 1] |