Структура классов Geozem

Классы используются в скриптах.

Классы графических объектов:

TGZM_Obj -> TGZM_BasEl, TGZM_BasEls

TGZM_BasEl -> TGZM_PointC, TGZM_LineC, TGZM_PolygonC, TGZM_PolygonPointC, TGZM_TextC

TGZM_BasEls -> TGZM_Points, TGZM_Lines, TGZM_Polygons, TGZM_Texts, TGZM_Rastrs, TGZM_PolygonPoints

TGZM_Layers

TGZM_Layer

TGZM_Design

TGZM_Table

Наследование классов:

Зависимость классов:

Классы расширяющие функциональность:

TGZM_Check_script

TGZM_FileFormat_script

TGZM_Solving_script

TGZM_Solving_List_obj

 

TGZM_Obj - базовый класс графических объектов

Свойство/метод Описание
function GetLayer:TGZM_Layer Возвращает текущий слой
procedure ChangeCoord(A,B,C,D,PX,PY:double) Пересчет системы координат
function XMax:double Максимальная координата по X
function YMax:double Максимальная координата по Y
function XMin:double Минимальная координата по X
function YMin:double Минимальная координата по Y
function XCen:double X координата центра
function YCen:double Y координата центра

TGZM_BasEl - базовый класс одиночных графических объектов

Свойство/метод Описание
NzTxt:string Подпись объекта
Visible:boolean признак видимости
Style:word Стиль
Color:TColor Цвет
Width:double Толщина
Nz:boolean Признак отображения названия
Ind:integer Индекс объекта в списке
Mark:boolean Признак выделения
Name:string Имя объекта
NzName:string Название объекта
Values[name:string]:variant Доступ к свойствам
TabName[name:string]:variant Доступ к табличным данным
procedure Assign(obj:TGZM_BasEl; dat:byte=0) Копирование данных из другого объекта
function AddTabName(name:string; v:variant):integer Добавить поле в таблицу
function IsFree:boolean Объект пустой
function PointIn(x,y:double;delta:double):integer Попадание точки с коодинатами в объект
function Compare(obj:TGZM_BasEl):boolean Сравнить с другим объектом
function CompFashion(obj:TGZM_BasEl):boolean Сравнить с другим объетом по содержанию
function UsePoint(nt:integer):boolean Точка используется в объекте

TGZM_BasEls - базовый класс списка графических объектов

Свойство/метод Описание
Mark:boolean Все объекты списка выделены
PMas[index:integer]:TGZM_BasEl Индексированный доступ к объектам списка
Values[name:string]:variant Доступ к свойствам
procedure Assign(obj:TGZM_BasEls; dat:byte=0) Копирование данных из другого списка
function UsePoint(nt:integer):boolean Точка используется в объектах списка
function AroundN(num:integer; x,y:double;delta:double; mshow:boolean=false):integer Попадание координаты на объект
procedure RenameInd(n1,n2:integer; swap:boolean=false) Перенумеровать
function Insert(n:integer):integer Вставить запись на место
function Add:integer Добавить в конец
function Count:integer Количество объектов в списке
function Del(n:integer; mprw:boolean=true):boolean Удалить запись из списка
function IsFree:boolean Список пустой
procedure Clear Очистить список
function Design:TGZM_Design Ссылка на объект оформления
function Default_obj:TGZM_BasEl Объект по умолчанию

TGZM_PointC - класс объекта точки

Свойство/метод Описание
X:double Координата X
Y:double Координата Y

TGZM_Points - класс списка точек

TGZM_LineC - класс объекта линии

Свойство/метод Описание
NT1:integer Номер первой точки
NT2:integer Номер второй точки
Point1:TGZM_PointC Объект первой точки
Point2:TGZM_PointC Объект второй точки
function Len:double Длина линии
function Angle:double Дирекционный угол линии

TGZM_Lines - класс списка линий

TGZM_PolygonC - класс объекта полигона

Свойство/метод Описание
StyleFill:word Стиль заливки
ColorFill:word Цвет заливки
Polyline:boolean Признак ломанной линии
CadastralNumber:string Кадастровый номер
PP[index:integer]:TGZM_PolygonPointC Индексированный доступ к точке полигона
PL[index:integer]:TGZM_PolygonPointC Индексированный доступ к линии полигона
SG[index:integer]:TGZM_PolygonPoints Индексированный доступ к сегменту полигона
function CountPoint:integer Количество точек в полигоне
function CountLine:integer Количество линий в полигоне
function CountSegment:integer КОличество сегментов в полигоне
function Area:double Площадь полигона
function Perimeter:double Периметр полигона
function Order:boolean Порядок обхода точек: по часовой/против часовой стрелки
function InsertPoint(nt1:integer;nt2:integer=-1):integer Вставить точку в полигон
function DeletePoint(nt:integer):boolean Удалить точку из полигона
function CheckSegment(typ:integer=0) :boolean
Проверяет сегменты в полигоне (typ=0-существующие сегменты, 1-создание из связанных)
function ChangeOrder:boolean
Меняет порядок обхода точек (по часовой на против часовой)
function AddSegment:integer
Добавляет новый сегмент
function DeleteSegment(n:integer):boolean Удаление сегмента (n)
function AddSegment(pp:TGZM_PolygonPoints):integer
Добавление в сегмент полигона списка точек
function PointInPolygon(x,y:double):integer
Определение попадание точки в полигон

TGZM_Polygons - класс списка полигонов

Свойство/метод Описание
PP[index1:integer; index2:integer]:TGZM_PolygonPointC Индексированный доступ к точке полигона
PL[index1:integer; index2:integer]:TGZM_PolygonPointC Индексированный доступ к линии полигона
SG[index1:integer; index2:integer]:TGZM_PolygonPoints Индексированный доступ к сегменту полигона

TGZM_PolygonPointC - класс объекта точки полигона

Свойство/метод Описание
Point:TGZM_PointC Ссылка на объект точки
NT:integer Номер точки
X:double Координата X
Y:double Координата Y
function Angle:double Дирекционный угол линии

TGZM_PolygonPoints - класс объекта списка точек полигона

Свойство/метод Описание
PP[index:integer]:TGZM_PolygonPointC Индексированный доступ к точке полигона
PL[index:integer]:TGZM_PolygonPointC Индексированный доступ к линии полигона
function Area:double Площадь полигона
function Perimeter:double Периметр полигона
function Order:boolean Порядок обхода точек: по часовой/против часовой стрелки
function Angle(n:integer):double Дирекционный угол линии
function InsertPoint(nt1:integer;nt2:integer=-1):integer
Вставляет точку nt1, после nt2
function ShiftPoint(n:integer):boolean
Сдвигает точки на n позиций
function ChangeOrder:boolean
Сменить порядок обхода (по часовой на против часовой)
function DeletePoint(nt:integer):boolean
Удалить точку
function Internal:boolean
Контур является внутренним
function PolygonIn(p:TGZM_PolygonPoints):integer
Определение наложения полигонов
function PointInPolygon(x,y:double):integer
Нахождение попадания точки внутрь полигона

TGZM_TextC - класс объекта текст

Свойство/метод Описание
Lines:TStringList Содержимое текста
Font:TFont Шрифт
Angle:double Угол вращения
Spacing:byte Межстрочное расстояние
Justify:byte Выравнивание текста
TypeBG:byte Тип заливки фона
ColorBG:byte Цвет заливки
Height:double Высота текста

TGZM_Texts - класс списка текстов

TGZM_Rastrs - класс списка растров

TGZM_Layers - класс списка слоёв

Свойство/метод Описание
PMas[index:integer]:TGZM_Layer Индексированный доступ к объектам списка
procedure Assign(obj:TGZM_BasEls; dat:byte=0) Копирование данных из другого списка
function Add(name:string=''):integer Добавить в конец с именем
function Count:integer Количество объектов в списке
function Del(n:integer):boolean Удалить запись из списка
function IsFree:boolean Список пустой
procedure Clear Очистить список
function Move(ind1,ind2:integer):boolean Переместить слой с ind1 на ind2
function GetEditLayer:TGZM_Layer Вернуть ссылку на слой с признаком "изменяемый"
procedure SetEditLayer(obj:TGZM_Layer) Установить на слой признак "изменяемый"
function LocateName(name:string; m_add:boolean=false):TGZM_Layer Найти слой по имени, m_add - при отсутствии слоя с таким именем, создавать новый слой
function GetFileName:string
Имя загруженного файла
function GetWindowID:string
Идентификатор окна, используется для чтения и записи содержимого в файл.

TGZM_Layer - класс объекта слоя

Свойство/метод Описание
function Points:TGZM_Points Ссылка на список точек
function Lines:TGZM_Lines Ссылка на список линий
function Polygons:TGZM_Polygons Ссылка на список полигонов
function Texts:TGZM_Texts Ссылка на список текстов
function Rastrs:TGZM_Rastrs Ссылка на список растров
function Table:TGZM_Table Ссылка на таблицу
procedure ChangeCoord(A,B,C,D,PX,PY:double) Изменение системы коодинат слоя
procedure Clear Очистить слой
function GetLayers:TGZM_Layers; Вернуть ссылку на список слоёв
procedure DelObject(obj:TGZM_BasEl); Удалить объект из слоя
procedure AddObject(obj:TGZM_BasEl); Добавить объект на слой
procedure MoveObject(obj:TGZM_BasEl); Переместить объект на слой
Name:string Название слоя
flag_available:boolean Флаг доступности слоя
flag_show:boolean Флаг видимости слоя
flag_edit:boolean Флаг изменяемого слоя
flag_external:boolean Флаг внешнего слоя
FName:string Имя файла из которого загружены данные
show_range:boolean Отображать в пределах масштба
mas_from:integer От масштаба
mas_to:integer До масштаба
function GetFileName:string
Имя загруженного файла

TGZM_Design - класс объекта оформления слоя

Свойство/метод Описание
flag_uniform:boolean Единообразное оформление
flag_show:boolean Отображать объекты
flag_label:boolean Отображать подписи объектов
Font:TFont Шрифт подписи
script_str:string Скрипт отображения
design_obj:TGZM_BasEl Объект - образец

TGZM_Table - класс объекта табличных данных

Свойство/метод Описание
function Count:integer Количество полей
function Add:integer Добавить поле
function Del(n:integer):boolean Удалить поле
function Move(n1,n2:integer):boolean Переместить поле
procedure Clear Очистить всё
function LocateName(s:string):integer Найти поле по названию

 

TGZM_Check_script - класс объекта проверки

Свойство/метод Описание
function GetLayer:TGZM_Layer Ссылка на текущий слой
procedure ShowProgress(n:integer) Прогресс
function CheckStop:boolean Метка остановки

Из скрипта вызывается функция формата:

function Name(obj:TGZM_Check_script):boolean;

 

TGZM_FileFormat_script - класс объекта формата файла

Свойство/метод Описание
function GetLayer:TGZM_Layer Ссылка на текущий слой
procedure ShowProgress(n:integer) Прогресс
function CheckStop:boolean Метка остановки
Values[name:string]:variant Доступ к свойствам
FileName:string Имя файла для работы
function FindPoint(X,Y:double):integer Найти/добавить точку по координатам
function FindLine(nt1,nt2:integer):integer Найти/добавить линию по координатам
function Lines:TStringList Содержимое файла
procedure LoadFromFile Выполнить загрузку файла
procedure SaveToFile Выполнить сохранение файла
procedure ReplaceFormat(key:string) Подменить существующий обработчик формата файла

Допустимые значения свойств Values:

Свойство/метод Описание
ext:string
Задаёт расширение файла, для файлов с этим расширением будет использоваться данный метод.
name:string
Возвращает название метода, установленное в AddMethod
filename:string
Возвращает имя файла, с которым идёт работа
is_read:boolean

Использование для чтения файлов

is_write:boolean
Использование для записи файлов
is_winopen:boolean
Можно использовать для установки открытия файлов с этим расширением в Windows
is_mlayer:boolean
Формат поддерживает многослойность
is_hablon:boolean
Можно использовать в качестве шаблона
is_skrd:boolean
Можно использовать для обработки изменения системы координат
OnCreate:string
Установка процедуры, которая будет вызываться при создании метода
OnAfterLoad:string
Установка процедуры, которая будет вызываться после загрузки
OnBeforeLoad:string
Установка процедуры, которая будет вызываться до загрузки
OnAfterSave:string
Установка процедуры, которая будет вызываться после сохранения
OnBeforeSave:string
Установка процедуры, которая будет вызываться до сохранения

Из скрипта вызывается процедура формата:

procedure Name(obj:TGZM_FileFormat_script);

TGZM_Solving_script - класс объекта задачи

Свойство/метод Описание
function GetLayer:TGZM_Layer Ссылка на текущий слой
Values[name:string]:variant Доступ к свойствам
procedure AddPageObject(obj:TControl; name:string='') Вставляет объект на форму
function Page:TWinControl Возвращает объект формы
function Objects:TGZM_Solving_List_obj Список объектов на форме
function AddPoint(x,y:double):integer Содание точки с координатами

Допустимые значения свойств Values:

Свойство/метод Описание
name:string
Задаёт название задачи
OnCreateForm:string
Вызывается при создании формы - формирует внешний вид формы, задаёт расположение элементов ввода данных
OnClearForm:string
Вызывается при очистке формы, при нажатии на кнопку "Новый"
OnSelect:string
Вызывается при выборе объекта
OnShowForm:string
Вызывается при перерисовки формы, при нажатии на кнопку "Обновить"
OnSaveForm:string
Вызывается при сохранении данных формы
OnCheckForm:string
Вызывается для проверки введенных данных, управляет доступностью кнопки "Решить"
OnExecute:string
Вызывается для решения задачи, при нажатии на кнопку "Решить"

Из скрипта вызывается процедуры форматов:

Для AddMethod, OnCreateForm, OnClearForm, OnShowForm, OnSaveForm:

procedure Name(obj:TGZM_Solving_script);

Для OnSelect:

procedure Name(obj:TGZM_Solving_script; gzm:TGZM_BasEl);

Для OnCheckForm, OnExecute:

function Name(obj:TGZM_Solving_script):boolean;

TGZM_Solving_List_obj - класс объекта списка объектов задач

Свойство/метод Описание
Values[name:string]:variant

Доступ к свойствам. В параметре name задаётся имя объекта и через точку название его свойства. Если передавать только имя, то возвращает ссылку типа TControl на этот объект.

Values['ed_point_1.x'] :=0; 
obj.objects['ed_point_1.x']:=0;
Свойство Назначение
left:integer отступ слева
top:integer отступ сверху
width:integer ширина
height:integer высота
default:variant значение по умолчанию
tag:integer свойство tag
TabOrder:integer порядок обхода
TabStop:boolean участвует в обходе
Parent:TWinControl ссылка на родительский объект
Filled:boolean Объект заполнен
function Is_Select(name:string):boolean
Объект с заданным именем находится в режиме выбора.
function CreateTLabel(name:string; caption:string; left:integer=-1; top:integer=-1; width:integer=-1; height:integer=-1):Tlabel

Создаёт на форме отъект TLabel. Задаётся имя, надпись, координаты, размеры.

obj.objects.CreateTLabel('obj1', 'Пример CreateTLabel', 8, 8 );
function CreateTMaskEdit(name:string; type_id:integer; left:integer=-1; top:integer=-1; width:integer=-1; height:integer=-1):TMaskEdit

Создаёт на форме отъект TMaskEdit. Задаётся имя, тип данных, координаты, размеры.

Допустимые типы для ввода данных: 0-текст, 1-координаты, 2-длина, 3-угол, 4-площадь.

obj.objects.CreateTMaskEdit('obj2', 0, 8, 8);
Свойство Назначение
Text:string Введённая строка
MaxLength:string Максимальная длина строки ввода
EditMask:string Маска ввода
Number:number Значение введенного числа
Angle:number Десятичное значение угла
function CreateTGroupBox(name:string; caption:string; left:integer=-1; top:integer=-1; width:integer=-1; height:integer=-1):TGroupBox

Создаёт на форме объект TGroupBox. Задаётся имя, надпись, координаты, размеры.

obj.objects.CreateTGroupBox('obj3', 'Пример CreateTGroupBox', 8, 8, -1, 64);
function CreateTCheckBox(name:string; caption:string; left:integer=-1; top:integer=-1; width:integer=-1; height:integer=-1):TCheckBox

Создаёт на форме объект TCheckBox. Задаётся имя, надпись, координаты, размеры.

obj.objects.CreateTCheckBox('obj4', 'Пример CreateTCheckBox', 8, 8, 200);
Свойство Назначение
Caption:string Подпись
Checked:boolean Признак отметки
function CreateTRadioGroup(name:string; caption:string; items:string; left:integer=-1; top:integer=-1; width:integer=-1; height:integer=-1):TRadioGroup

Создаёт на форме объект TRadioGroup. Задаётся имя, надпись, содержимое, координаты, размеры.

 obj.objects.CreateTRadioGroup('obj6', 'Пример CreateTRadioGroup', 'Первый'+chr(13)+'Второй', 8, 8, -1, 60);   
Свойство Назначение
Caption:string Подпись
ItemIndex:integer Индекс выделенного элемента
Items:string Список элементов
function CreateTComboBox(name:string; items:string; left:integer=-1; top:integer=-1; width:integer=-1; height:integer=-1):TComboBox

Создаёт на форме объект TComboBox. Задаётся имя, содержимое, координаты, размеры.

obj.objects.CreateTComboBox('obj7', 'Первый'+chr(13)+'Второй', 8, 8, -1, 60);
Свойство Назначение
ItemIndex:integer Индекс выделенного элемента
Items:string Список элементов
function CreateSelectOBJ(name:string; type_id:integer; left:integer=-1; top:integer=-1; width:integer=-1; height:integer=-1):TSpeedButton

Создаёт на форме объект TSpeedButton для выбора графических объектов. Задаётся имя, тип выбираемых данных, координаты, размеры.

Типы данным могут быть: 1-точка, 2-линия, 3-полигон

obj.objects.CreateSelectOBJ('obj5', 0, 8, 8);
Свойство Назначение
Down:boolean Кнопка нажата или нет
function CreateGR_SelectObject(name:string; caption:string; type_id:integer; left:integer=-1; top:integer=-1; width:integer=-1; height:integer=-1):TGroupBox

Создаёт на форме группу объектов для выбора графического объекта. Задаётся имя, надпись, тип выбираемых данных, координаты, размеры.

obj.objects.CreateGR_EditPoint('ed_point', 'Точка', 8, 8);
Свойство Назначение
Down:boolean Кнопка нажата или нет
function CreateGR_EditPoint(name:string; caption:string; left:integer=-1; top:integer=-1; width:integer=-1; height:integer=-1):TGroupBox

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

obj.objects.CreateGR_EditPoint('ed_point_1', 'Первая точка', 8, 8);
Свойство Назначение
X:number значение координаты X
Y:number значение координаты Y
number:integer номер точки
function CreateGR_SelectLine(name:string; caption:string; left:integer=-1; top:integer=-1; width:integer=-1; height:integer=-1):TGroupBox

Создаёт на форме группу объектов для выбора линии. Задаётся имя, надпись, тип выбираемых данных, координаты, размеры.

 obj.objects.CreateGR_SelectLine('ed_line', 'Линия', 8, 8);
Свойство Назначение
X1:number значение координаты X первой точки
Y1:number значение координаты Y первой точки
NT1:integer номер первой точки
X2:number значение координаты X второй точки
Y2:number значение координаты Y второй точки
NT2:integer номер второй точки