Form/Docu/ru/Cmds.odc

FormCmds

DEFINITION FormCmds;

	IMPORT Dialog;

	VAR
		grid: RECORD 
			resolution: INTEGER;
			metricSystem: BOOLEAN
		END;

	PROCEDURE AlignLeft;
	PROCEDURE AlignRight;
	PROCEDURE AlignTop;
	PROCEDURE AlignBottom;
	PROCEDURE AlignToRow;
	PROCEDURE AlignToColumn;
	PROCEDURE InitGridDialog;
	PROCEDURE SetGrid;
	PROCEDURE SelectOffGridViews;
	PROCEDURE ForceToGrid;
	PROCEDURE SetAsFirst;
	PROCEDURE SetAsLast;
	PROCEDURE SortViews;
	PROCEDURE InsertAround;
	PROCEDURE FocusGuard (VAR par: Dialog.Par);
	PROCEDURE SelectionGuard (VAR par: Dialog.Par);
	PROCEDURE SingletonGuard (VAR par: Dialog.Par);

END FormCmds.


Пакет команд для отображений форм. Его главное назначение - поддержка редактирования расположения (отображений на форме) посредством различных команд выравнивания и управления сеткой.

Можно создать следующее меню с использованием этих команд:

MENU "Layout" ("FormViews.View")
	"Align &Left"	""	"FormCmds.AlignLeft"	"FormCmds.SelectionGuard"
	"Align &Right"	""	"FormCmds.AlignRight"	"FormCmds.SelectionGuard"
	"Align &Top"	""	"FormCmds.AlignTop"	"FormCmds.SelectionGuard"
	"Align &Bottom"	""	"FormCmds.AlignBottom"	"FormCmds.SelectionGuard"
	"Align To Ro&w"	""	"FormCmds.AlignToRow"	"FormCmds.SelectionGuard"
	"Align To &Column"	""	"FormCmds.AlignToColumn"	"FormCmds.SelectionGuard"
	SEPARATOR
	"Set &Grid..."	""	"FormCmds.InitGridDialog;
			StdCmds.OpenToolDialog('Form/Rsrc/Cmds', 'Set Grid')"
				"FormCmds.FocusGuard"
	"&Select Off-Grid Views"	""	"FormCmds.SelectOffGridViews"	""
	"&Force To Grid"	""	"FormCmds.ForceToGrid"	"FormCmds.SelectionGuard"
	SEPARATOR
	"Set F&irst/Back"	""	"FormCmds.SetAsFirst"	"FormCmds.SingletonGuard"
	"Set L&ast/Front"	""	"FormCmds.SetAsLast"	"FormCmds.SingletonGuard"
	"Sort &Views"	""	"FormCmds.SortViews"	"FormCmds.FocusGuard"
	SEPARATOR
	"Insert Group Box"	""	"FormCmds.InsertAround"	"FormCmds.FocusGuard"
END


VAR grid: RECORD
Интерактор для диалогового окна сетки (Form/Rsrc/Cmds).

resolution: INTEGER	resolution > 0
Если metricSystem, тогда resolution указывает число линий сетки в одном миллиметре. Если ~metricSystem, тогда resolution указывает число линий сетки в 1/16 дюйма. Чем больше значение, тем выше возможная точность.

metricSystem: BOOLEAN
Определяет, будет ли использоваться метрическая система (миллиметры) или нет (1/16-ые дюймов).


PROCEDURE AlignLeft
Охрана: FormCmds.SelectionGuard
Перемещает все выделенные отображения таким образом, что их левые границы будут выравнены по границе самого левого отображения в выделении.

PROCEDURE AlignRight
Охрана: FormCmds.SelectionGuard
Перемещает все выделенные отображения таким образом, что их правые границы будут выравнены по границе самого правого отображения в выделении.

PROCEDURE AlignTop
Охрана: FormCmds.SelectionGuard
Перемещает все выделенные отображения таким образом, что их врехние границы будут выравнены по границе самого верхнего отображения в выделении.

PROCEDURE AlignBottom
Охрана: FormCmds.SelectionGuard
Перемещает все выделенные отображения таким образом, что их нижние границы будут выравнены по границе самого нижнего отображения в выделении.

PROCEDURE AlignToRow
Охрана: FormCmds.SelectionGuard
Перемещает все выделенные отображения таким образом, что их вертикальные центры выравниваются по горизонтали.

PROCEDURE AlignToColumn
Охрана: FormCmds.SelectionGuard
Перемещает все выделенные отображения таким образом, что их горизонтальные центры выравниваются по вертикали.

PROCEDURE InitGridDialog
Охрана: FormCmds.FocusGuard
Устанавливает значения полей grid.resolution и grid.metricSystem в соответствии со значениями диспетчера (т. е. отображения, с которым он связан), обладающего фокусом.

PROCEDURE SetGrid
Охрана: FormCmds.FocusGuard
Устанавливает значения grid и gridFactor в сфокусированном отображении равными значениям grid.resolution и grid.metricSystem.

PROCEDURE SelectOffGridViews
Охрана: FormCmds.FocusGuard
Выделяет все отображения на сфокусированной форме, левые верхние углы которых не лежат на сетке.

PROCEDURE ForceToGrid
Охрана: FormCmds.FocusGuard
Перемещает все отображения на сфокусированной форме таким образом, чтобы их левые верхние углы оказались на сетке.

PROCEDURE SetAsFirst
Охрана: FormCmds.SingletonGuard
Помещает выделенное отображение на первую позицию (на задний план - под всеми).

PROCEDURE SetAsLast
Охрана: FormCmds.SingletonGuard
Помещает выделенное отображение на последнюю позицию (на передний план - над всеми).

PROCEDURE SortViews
Охрана: FormCmds.FocusGuard
Сортирует порядок расположения (над/под) отображений на форме согласно их геометрическому расположению, т. е., отображение, верхняя граница которого выше, или на том же уровне, но левая левее, располагается перед другим (под ним).

PROCEDURE InsertAround
Охрана: FormCmds.SelectionGuard
Вставляет рамку (GroupBox) т. о., чтобы она окружала все выделенные отображения.

PROCEDURE FocusGuard (VAR par: Dialog.Par)
Охранник, делающий недоступным элемент меню, если передним фокусом не обладает отображение формы.

PROCEDURE SelectionGuard (VAR par: Dialog.Par)
Охранник, делающий недоступным элемент меню, если передним фокусом не обладает отображение формы, или на форме отсутствует выделение.

PROCEDURE SingletonGuard (VAR par: Dialog.Par)
Охранник, делающий недоступным элемент меню, если передним фокусом не обладает отображение формы, или на форме нет синглетона (выделения, содержащего одиночное отображение).