Файл: ...\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] | |