MEDIA STUDIO DESIGN
MEDIA TOOL BOX v7.25
------------
ALL RIGHTS RESERVED (R)
Copyright(c) 2000-2005 Иоанн.
------------
RELEASE NOTES
------------
1. Краткое описание возможностей и достоинств библиотеки:
1.0 Бесплатно распространяемая библиотека (можно скачать и с MEDIA
PORTAL раздел исходников)
1.1 Поддержка трех основных форматов файлов с граф-моделями
1.2 Поддержка трех основных форматов файлов с библиотеками граф-моделей
1.3 Неограниченные возможности конвертирования из формата в формат за
счет открытости всех форматов и наличия специализированных классов-конвертеров
1.4 Открытость внутренних описаний
1.5 Простота в использовании
1.6 Гибкость и простота модификации струтур типа DF
1.7 Быстрота обработки
1.8 Встроенный прорисовщик моделей
1.9 Встроенный мастер отчета о загрузке
1.10 Ориентированность на Win32 под систему Delphi5 дает возможность
практически мгновенно создавать быстрые и качественные приложения обработки
графов
------
Далее приводится описание библиотеки подготовленное MEDIA STUDIO с некоторыми
комментариями (2,3,4 разделы)
------
2 Заголовочные файлы драйверов форматов:
Part One : Drivers.
This part has three subdirectory in with you may find drivers fo graph
formats:
FO/FL standart FO format for graph model.
FO - simple model. FL - library;
MFO/MFL modigfied FO format for graph model.
MFO - simple model. MFL - library;
MX/MXL standasrt MatriX format for graph model.
MX - simple model. MXL - library;
Drivers contain procedures to read,load and write graph models.
FORMATDRV:
-> FO/FL DRIVER v25.7
Header of file is:
//----------------------------------------------
procedure LoadLibrary(fname:string;var count:smallint;label1:TLabel;
listbox1:TListbox);
procedure OpenModelFOFL(fname:string;var pos:integer;listbox1,listbox2:TListbox;
label2:TLabel;image:Timage;x,y,r:smallint;var GrI:GraphInfo;var ADat:DF;Sender:
TObject);
procedure LoadFo(fname:string;listbox1,listbox2:TListbox;
label1,label2:TLabel;image:Timage;x,y,r:smallint;var GrI:GraphInfo;var
ADat:DF;Sender: TObject);
function SaveAdatAsFO(fname:string;GrI:GraphInfo;ADat:DF):boolean;
function SaveAdatAsFL(fname:string;GrI:GraphInfo;ADat:DF):boolean;
procedure LoadLibraryWM(fname:string;var count:smallint);
procedure OpenModelFOFLWM(fname:string;var pos:integer;var GrI:GraphInfo;var
ADat:DF);
procedure LoadFoWM(fname:string;var GrI:GraphInfo;var ADat:DF);
//----------------------------------------------
-> MFO/MFL DRIVER v32.5
Header of file is:
//----------------------------------------------
procedure LoadLibraryMFL(fname:string;var count:smallint;label1:TLabel;
listbox1:TListbox);
procedure OpenModelMFOMFL(fname:string;var pos:integer;listbox1,listbox2:TListbox;
label2:TLabel;image:Timage;x,y,r:smallint;var GrI:GraphInfo;var ADat:DF;Sender:
TObject);
procedure LoadMFO(fname:string;listbox1,listbox2:TListbox;
label1,label2:TLabel;image:Timage;x,y,r:smallint;var GrI:GraphInfo;var
ADat:DF;Sender: TObject);
function SaveAdatAsMFO(fname:string;GrI:GraphInfo;ADat:DF):boolean;
function SaveAdatAsMFL(fname:string;GrI:GraphInfo;ADat:DF):boolean;
procedure OpenModelMFOMFLWM(fname:string;var pos:integer;var GrI:GraphInfo;var
ADat:DF);
procedure LoadMFOWM(fname:string;var GrI:GraphInfo;var ADat:DF);
//----------------------------------------------
-> FO/FL DRIVER v4.1
Header of file is:
//----------------------------------------------
procedure LoadLibraryMXL(fname:string;var count:smallint;label1:TLabel;
listbox1:TListbox);
procedure OpenModelMXMXL(fname:string;var pos:integer;listbox1,listbox2:TListbox;
label2:TLabel;image:Timage;x,y,r:smallint;var GrI:GraphInfo;var ADat:DF;Sender:
TObject);
procedure LoadMX(fname:string;listbox1,listbox2:TListbox;
label1,label2:TLabel;image:Timage;x,y,r:smallint;var GrI:GraphInfo;var
ADat:DF;Sender: TObject);
function SaveAdatAsMX(fname:string;GrI:GraphInfo;ADat:DF):boolean;
function SaveAdatAsMXL(fname:string;GrI:GraphInfo;ADat:DF):boolean;
procedure OpenModelMXMXLWM(fname:string;var pos:integer;var GrI:GraphInfo;var
ADat:DF);
procedure LoadMXWM(fname:string;var GrI:GraphInfo;var ADat:DF);
//----------------------------------------------
3 Заголовочные файлы графических прорисовщиков:
-> DRAWDRV
DRAW GRAPH DRIVER v35.6
Header of file is:
//-------------------------------------
procedure DrawModel(p:smallint;ADat:DF;image:TImage;x,y,r:smallint;Sender:
TObject);
//-------------------------------------
4 Объекты конвертирования:
GRAPH FORMAT CONVERTOR v 1.2
Library with format convertor
use standart : FO/MFL
MFO/MFO
MX/MXL
This Library not works without drivers for this formats!
You may use OBJECT:
type
TConvertor=object
typeconvertion:byte;
finput:string;
foutput:string;
//--------------------------------------
XADT:DF;
XGRI:GraphInfo;
//--------------------------------------
{-----FO-----}
{FL->FO}
procedure FLtoFO;
{MFL->FO}
procedure MFLtoFO;
{MXL->FO}
procedure MXLtoFO;
{MX->FO}
procedure MXtoFO;
{MFO->FO}
procedure MFOtoFO;
//--------------------------------------
{-----MFO-----}
{FL->MFO}
procedure FLtoMFO;
{MFL->MFO}
procedure MFLtoMFO;
{MXL->MFO}
procedure MXLtoMFO;
{MX->MFO}
procedure MXtoMFO;
{FO->MFO}
procedure FOtoMFO;
//--------------------------------------
{-----MX-----}
{FL->MX}
procedure FLtoMX;
{MFL->MX}
procedure MFLtoMX;
{MXL->MX}
procedure MXLtoMX;
{MFO->MX}
procedure MFOtoMX;
{FO->MX}
procedure FOtoMX;
//--------------------------------------
{-----FL-----}
{FO->FL}
procedure FotoFL;
{MFO->FL}
procedure MFotoFL;
{MX->FL}
procedure MXtoFL;
{MFL->FL}
procedure MFLtoFL;
{MXL->FL}
procedure MXLtoFL;
//--------------------------------------
{-----MFL-----}
{FO->MFL}
procedure FotoMFL;
{MFO->MFL}
procedure MFotoMFL;
{MX->MFL}
procedure MXtoMFL;
{FL->MFL}
procedure FltoMFL;
{MXL->MFL}
procedure MxltoMFL;
//--------------------------------------
{-----MXL-----}
{FO->MXL}
procedure FotoMXL;
{MFO->MXL}
procedure MFotoMXL;
{MX->MXL}
procedure MXtoMXL;
{FL->MXL}
procedure FltoMXL;
{MXL->MXL}
procedure MFltoMXL;
//--------------------------------------
end;
5 Как видно из заголовочных файлов библиотека рассчитана на работу
с графом , представленным в виде структуры DF. Здесь мы приводим описание
этой структуры файл для которой можно скачать в разделе GRAPH TOOLBOX
на MEDIA PORTAL или набить самим (в 7 версии библиотеки файл поставляется
вместе с драйверами):
{Здесь собраны основные типы используемые в программе}
unit typedefs;
{Все типы доступны}
interface
{-T-Y-P-E-S---------}
{Информационный тип}
type InformType=smallint;
{Тип структуры <a,b,g> кортежа}
type Tabg=array[1..3]of smallint;
{Структура GraphInfo
Здесь хранится базовая информация о модели}
type GraphInfo=record
{Число вершин}
q:integer;
{Число ребер}
p:integer;
{Кол-во компонент связности}
ksv:integer;
{Цикломатическое число}
cmch:integer;
{Класс модели
имя и ...}
modelclass:string;
{...номер}
mcl:smallint;
{Число простых цепей}
chains:longint;
{Индекс цепной сложности CM1}
CM1:REAL;
{Радиус графа}
rg:integer;
{Диаметр графа}
dg:integer;
{Средний диаметр графа}
sdg:real;
end;
{Структура непосредственно представляющая модель в памяти}
type Df=array of record
{Вершина и ее степень}
v,dv:smallint;
{Вес вершинки}
w:smallint;
{Связи вершины}
Vmedia:array of smallint;
{Класс вершины}
kl:smallint;
abg:Tabg;
{Эксцентриситет вершины}
e:integer;
end;
{Множество не эквивалентных пар вершин}
type NotEPV=array of record
a:smallint;{Вершина 1}
b:smallint;{Вершина 2}
ketpv:smallint;{Кол-во пар эквивалентных этой}
end;
{Тип ЯРГ}
type TJRG=array of record
xs:array of smallint;{Список вершин на ярусе}
kvj:smallint;{Кол-во вершин на ярусе}
end;
{Тип ЯРГ}
type NTJRG=array of record
v:array of smallint;{Список вершин на ярусе}
kv:integer;{Кол-во вершин на ярусе}
end;
{Тип Класс Эквивалентных Вершин}
type TKEV=array of record
v:array of smallint;{Список вершин в классе}
kv:integer;{Кол-во вершин в классе}
end;
{Специальный тип для хранения классов пар вершин}
type Tall=array of array of record
k:smallint;
end;
type TSV=record
n:smallint;
x,y:smallint;
end;
type TSE=record
v1,v2:smallint;
end;
type TVert=array of TSV;
type TEges=array of TSE;
type Tgraph=record
p,q:smallint;
MV:TVert;
ME:TEges;
end;
type TGraphSystem=record
vert:boolean;
edge:boolean;
end;
implementation
{MEDIA STUDIO DESIGN}
{Copyright(c) 2000-2004 Иоанн.}
end.
Как видно из файла часть библиотеки не будет опубликована как freeware.
На правах рекламы: к концу 2001 года появится объектно ориентированная
версия библиотеки!