Классы используются в скриптах.
Классы графических объектов:
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 - базовый класс графических объектов
Свойство/метод | Описание |
---|---|
Visible:boolean | Признак видимости |
Mark:boolean | Признак выделения |
function GetLayer:TGZM_Layer | Возвращает текущий слой |
procedure ChangeCoord(A,B,C,D,PX,PY:double) | Пересчет системы координат по параметрам афинных преобразований |
procedure procedure ChangeCoordTC(crd:TGZM_Transform_Coordinate) | Пересчет системы координат с указанием объекта преобразования |
function XMax:double | Максимальная координата по X |
function YMax:double | Максимальная координата по Y |
function XMin:double | Минимальная координата по X |
function YMin:double | Минимальная координата по Y |
function XCen:double | X координата центра |
function YCen:double | Y координата центра |
function GetInArea(x1,y1,x2,y2,x3,y3,x4,y4:double):boolean | Проверяет попадание объектов в прямоугольник ограниченный точками с координатами |
TGZM_BasEl - базовый класс одиночных графических объектов
Свойство/метод | Описание |
---|---|
NzTxt:string | Подпись объекта |
Style:word | Стиль |
Color:TColor | Цвет |
Width:double | Толщина |
Nz:boolean | Признак отображения названия |
Index:integer | Индекс объекта в списке |
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 - базовый класс списка графических объектов
Свойство/метод | Описание |
---|---|
PMas[index:integer]:TGZM_BasEl | Индексированный доступ к объектам списка |
Values[name:string]:variant | Доступ к свойствам |
Script[name:string]:string | Доступ по имени к параметру скрипта |
function GetScript:TStringList | Получение ссылки на список скрипта |
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 | Объект по умолчанию |
function LocateObject(obj:TGZM_BasEl):integer |
Возвращает индекс объекта в списке |
TGZM_PointC - класс объекта точки
Свойство/метод | Описание |
---|---|
X:double | Координата X |
Y:double | Координата Y |
TGZM_Points - класс списка точек
Свойство/метод | Описание |
---|---|
function AddPoint(x,y:double; check:boolean=true):integer |
Создает точку по координатам, параметр check проверяет наличие такой точки, если такая точка уже существует, то не создает. Возвращает индекс созданной точки |
TGZM_LineC - класс объекта линии
Свойство/метод | Описание |
---|---|
NT1:integer | Номер первой точки |
NT2:integer | Номер второй точки |
Point1:TGZM_PointC | Объект первой точки |
Point2:TGZM_PointC | Объект второй точки |
function Length:double | Длина линии |
function Angle:double | Дирекционный угол линии |
TGZM_Lines - класс списка линий
Свойство/метод | Описание |
---|---|
function AddLine(nt1, nt2:integer; check:boolean=true):integer |
Создает линию по индексам точек, параметр check проверяет наличие такой линии, если линия уже существует, то не создает. Возвращает индекс созданной точки |
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 Length(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_RastrC - класс объекта растр
Свойство/метод | Описание |
---|---|
Name:string | Название растра |
FName:string | Файл растра |
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 - класс объекта слоя
Свойство/метод | Описание |
---|---|
Values[name:string]:string | Доступ с переменным слоя по имени |
function GetValues:TStringList | Ссылка на список переменных слоя |
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 procedure ChangeCoordTC(crd:TGZM_Transform_Coordinate) | Пересчет системы координат с указанием объекта преобразования |
procedure Clear | Очистить слой |
function GetLayers:TGZM_Layers | Вернуть ссылку на список слоёв |
function DelObject(obj:TGZM_BasEl):boolean | Удалить объект из слоя, возвращает признак выполнения |
procedure AddObject(obj:TGZM_BasEl) | Добавить объект на слой |
procedure MoveObject(obj:TGZM_BasEl) | Переместить объект на слой |
function GetInArea(x1,y1,x2,y2,x3,y3,x4,y4:double):boolean |
Возвращает признак наличия объектов в прямоугольник заданный координатами |
procedure Assign(el:TGZM_Layer; dat:byte=0) |
Копирует данные из другого объекта |
function DeletePoint(nt:integer):boolean |
Удаление точки из слоя, удалает точки из линии и полигона |
function UsePoint(nt:integer):boolean |
Возвращает признак использования точки в линии или полигоне |
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 | До масштаба |
crd_system:string |
ID системы координат |
sign_priority:byte |
Приоритет рисования подписей, число от 0 до 100 |
Index:integer |
Индекс объекта в списке |
function GetFileName:string |
Имя загруженного файла |
TGZM_Design - класс объекта оформления слоя
Свойство/метод | Описание |
---|---|
flag_uniform:boolean | Единообразное оформление |
flag_show:boolean | Отображать объекты |
flag_label:boolean | Отображать подписи объектов |
flag_label_angle:boolean | Отображать подписи углов полигонов |
flag_label_line: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;
|
||||||||||||||||||||||
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);
| ||||||||||||||||||||||
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);
|
||||||||||||||||||||||
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);
|
||||||||||||||||||||||
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);
|
||||||||||||||||||||||
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);
|
||||||||||||||||||||||
function CreateGR_SelectObject(name:string; caption:string; type_id:integer; left:integer=-1; top:integer=-1; width:integer=-1; height:integer=-1):TGroupBox | Создаёт на форме группу объектов для выбора графического объекта. Задаётся имя, надпись, тип выбираемых данных, координаты, размеры. Типы данным могут быть: 1-точка, 2-линия, 3-полигон. obj.objects.CreateGR_SelectObject('ed_point', 'Точка', 1, 8, 8);
|
||||||||||||||||||||||
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);
|
||||||||||||||||||||||
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);
|
TGZM_Transform_method_sctipt - класс объекта метода пересчета системы координат для скриптов
Свойство/метод | Описание |
---|---|
procedure ChangeCoord(method_name:string) | Выполняет указанный метод смены системы координат |
old_X:extended | Координата X, исходное значение |
old_Y:extended | Координата Y , исходное значение |
old_Z:extended | Координата Z , исходное значение |
new_X:extended | Координата X, новое значение |
new_Y:extended | Координата Y, новое значение |
new_Z:extended | Координата Z, новое значение |
old_lon:extended | Долгота, исходное значение |
old_lat:extended | Широта, исходное значение |
old_alt:extended | Высота, исходное значение |
new_lon:extended | Долгота, новое значение |
new_lat:extended | Широта, новое значение |
new_alt:extended | Высота, новое значение |
Params:TStringList | Список дополнительных параметров. Параметр 'reverse' устанавливается в '1' когда нужно обратное преобразование (операция создания реверсивного преобразования). obj.params.values['reverse'] = '1' |
TGZM_Transform_Coordinate - класс объекта метода пересчета системы координат
Свойство/метод | Описание |
---|---|
Name:string |
Идентификатор/название преобразования |
sc_from:string |
Идентификатор исходной системы координат |
sc_type_from:integer |
Тип исходной системы координат. 0 - плоская, 1 - сферическая, 2- геоцентрическая |
sc_to:string |
Идентификатор результирующей системы координат |
sc_type_to:integer |
Тип результирующей системы коодинат. 0 - плоская, 1 - сферическая, 2- геоцентрическая |
procedure Reverse |
Преобразует в обратное преобразование |
procedure Calc(old_x, old_y:extended; var X,Y:extended) |
Выполняет пересчет координат точки по двум координатам |
procedure Calc(old_x, old_y, old_z:extended; var X,Y,Z:extended) | Выполняет пересчет коодинат точки по трем коодинатам |