﻿Класс формы. Предназначен для создания ваших наследников, в которых определяется состав компонентов формы и переопределяются методы для организации обработки событий формы и её компонентов. В визуальной библиотеке AL-IV, все визуальные компоненты размещаются в колонках, а колонки - на форме. Более вложенные иерархии не допускаются, исключая слишком сложные конфигурации формы, которые не могут быть нормально отображены на маленьких экранах.

-------------------------------------------------- 'create / close'
						'создание / закрытие'
						
------- 'native Window handle'
		'нативный дескриптор окна'
		
------ 'form caption, borders'
		'заголовок, границы'

------------------------------------------------------ 'show / hide'  
						'отображение / скрытие'

------------------------------------------------------ 'form caption'
							'заголовок'

--------------------------------------------------------- 'position & size'
							'позиция и размер'
							
------- 'client size'
		'клиентский размер'
		
---- 'drop files, another instance run'
	 'перетаскивание файлов, запуск другого экземпляра приложения'

--------------------------------------------------------- 'form events'
							'события формы'

Переопределение метода 'command' позволяет обрабатывать события запуска других экземпляров приложения. При этом список параметров запущенного экземпляра становится доступен через функции Count_param, Parameter из {System_functions}.
Стобы событие command работало, и обеспечивался единственный экземпляр приложения, следует вместо класса {Screen} в функции Main визуального приложения использовать класс {Single_instance}.

<p>
Переопределение метода 'accept' позволяет обрабатывать события бросания файлов на форму (в результате перетаскивания мышью). Если ваш 'accept' возвращает TRUE, набор файлов считается допустимым и последующее отпускание клавиши мыши модет приводить к срабатыванию события 'command' для обработки собственно бросания списка файловс на форму. Сам список файлов доступен через функции Count_param и Parameter класса {System_functions} (при этом параметр с индексом 0 не используется).

--------------------------------------------------------- 'messages & questions'
							'сообщения / вопрос'

----------------------------------- 'dialog answers'
					'ответ для диалога'

------------------------------------------------------------ 'menu'
							'меню'
Для создания и вызова всплывающего меню используется метод Popup_menu. Его единственный параметр - это строка, состоящая из определний пунктов меню, разделённых символами конца строки. Удобно использовать задание многострочной строчной константы с перфиксным символом @. В этом случае символ возврата каретки добавляется автоматически, если строка завершается строчным литералом. Для организации вложенных меню, следом за пунктом, являющимся родительским, должна быть отдельно расположена строка, содержащая только символ "(". Аналогично, строка ")" завершает уровень. Каждая строка, соответствующая пункту меню, может (и должна) начинаться с префикса вида "ИДЕНТИФИКАТОР:" (двоеточие отделяет назначенный пункту меню синоним от текста пункта меню, следующего за двоеточием). Так же, возможно указание вместе с синонимом дополнительных атрибутов через запятую: disabled, checked. Например:
<pre>
  Popup_menu(@
  "COPY,disabled:	&Copy	[Ctrl-C]"
  "CUT,disabled:	C&ut	[Ctrl-X]"
  "PASTE:		&Paste	[Ctrl-V]"
  "-"
  "Mode..."
  "("
    "AUTO,checked:	&Auto"
    "Manual:		&Manual"
  ")"
  "EXIT:		&Exit")
</pre><p class=descr>
Отдельная строка "-" создаёт визуальный разделитель групп (обычно отображается как горизонтальная линия в меню). Одиночный символ "&" в определении пункта меню задаёт символ-ускоритель для быстрого выбора элемента (нажатием ALt+следующий символ). Но в некоторых средах этот символ просто игнорируется (Java). Для использования самого символа '&' в тексте меню, его следует удвоить. Для обработки пунктов меню следует переопределить обработчик menu:</br>
OVERRIDE menu(STR Alias) : ...
</p>

--------------------------------------------------------- 'work with columns'
							'управление колонками'

----------------------------------------------------- 'active control'
							'активный визуальный компонент'

-------------------------------------------------------- 'control events'
							'события компонентов'

------------------------------------------------------------ 'click info'
							'данные о состоянии указателя (мыши)'

------------------------------------------------------ 'keyboard key info'
							'клавиатура'

-------------------------------------------------------- 'hint on control'
							'хинты'

-------------------------------------------------------- 'timer event'
							'таймеры'

-------------------------------------------------------- 'change events'
							'события изменений'

--------------------------------------------- 'control hide / disable in events'
						'события для скрытия / запрета компонентов'



