<html>
<head>
<title>Оглавление</title>
<meta http-equiv="content-type" content="text/html; charset=WINDOWS-1251">
<style>
body
{
font-size: 15px;
font-family: "Bookman Old Style";
color: black;
text-align: justify;
}
h1 { color: green; font-size: 23px; }
h2 { color: green; font-size: 21px; }
h3 { color: green; font-size: 19px; }
h4 { color: #803f00; font-size: 17px; }
i { color: #0099cc; }
b { color: #0099cc; }
p {
text-indent: 1em;
margin-top: 3px;
margin-bottom: 2px;
margin-left: 0px;
margin-right: 0px;
}
ol, ul, dl{
margin-top: 3px;
margin-bottom: 2px;
}
pre
{
padding: 2px;
padding-left: 20px;
margin-top: 5px;
margin-bottom: 5px;
margin-left: 0px;
margin-right: 0px;
font-family: "Courier New";
font-size: 15px;
color: #004000;
background-color: #ffd0ff;
}
table
{
font-size: 15px;
}
</style>
</head>
<body>
<h1>Kol_f_edit версия от 31.12.2010</h1>
<p>Оглавление</p>
<ul>
<li>О программе</li>
<li><a href="#algor">Алгоритм работы с программой</a></li>
<li><a href="#v_obj">Виды объектов</a></li>
<ul>
<li><a href="#obj_type">Тип даного</a></li>
<li><a href="#obj_vari">Переменная</a></li>
<li><a href="#obj_stru">Структура</a></li>
<li><a href="#obj_code">Asm код</a></li>
<li><a href="#obj_auto">Авто код</a></li>
<li><a href="#obj_libr">Импорт библиотеки</a></li>
<li><a href="#obj_ifun">Функция из библиотеки</a></li>
<li><a href="#obj_incl">Включение файла</a></li>
</ul>
</ul>
<h2>О программе</h2>
<p>Программа для автоматизации создания интерфейса.
Некоторые из функций программы пока еще не сделаны, потому возможности ее практического использования ограничены.
Лицензия свободная.</p>
<p><img src="about.png"></p>
<p>Внешний вид программы.</p>
<h2><a name="algor">Алгоритм работы с программой</a></h2>
<p>1) Открываем шаблон программы из файла с расширением <b>.ced</b>
(min_prog.ced - "минимальная" программа, box_l.ced - программа с подключением библиотеки box_lib.obj,
buf2d.ced - программа с подключением библиотеки buf2d.obj, планируеться добавление других шаблонов</i>)</p>
<p>2) Редактируем объекты в подключенном файле <b>*.ced</b></p>
<p>3) Создаем <b>*.asm</b> код в текстовом окне кнопкой на панели. Сохраняем <b>*.asm</b> код на диск (<i>работоспособность получившегося файла не гарантируется, т. к. некоторые из элементов еще доконца не проработаны</i>)</p>
<p>4) Редактируем получившийся <b>*.asm</b> файл любым текстовым редактором. Для этого убираем в начале файла описания структур (т. к. они содержатся в подключаемых файлах <b>.inc</b>) и дописываем пути к подключаемым файлам.</p>
<h2><a name="v_obj">Виды объектов</a></h2>
<p>Програмный код создается на основе свойств объектов, внесенных в файл проэкта. Все объекты внутри програмы представляються структурами вида:</p>
<pre>struct object
id dd ? ;идентификатор объекта
txt rb MAX_LEN_OBJ_TXT ;текстовые свойства
lvl db 0
clo db 0
typid dd ? ;номер объекта определяющего тип переменной
modif dd ? ;битовые свойства
ends</pre>
<p>В зависимости от вида объекта не все его параметры могут использоваться.
Большая часть свойств объекта задается параметрами: <b>txt</b> (текстовые свойства), <b>typid</b> и <b>modif</b> (битовые свойства).
Редактирование оъектов совершается через окно свойств объекта.
При создании объекта текстовые свойства вносятся в текстовые поля (элементы editbox слевой стороны окна);
битовые свойства задаются флажками (находятся справой стороны в нижнем углу окна) а тип объекта выбирается из списка, который доступен только при редактировании переменных (находятся справой стороны в верхнем углу окна).</p>
<p>Для открытия окна со свойствами объекта нужно выбрать редактируемый объект и нажать <b>[Enter]</b> или кнопку <img src="property.png"> на панели инструментов.</p>
<h3><a name="obj_type">Тип даного</a></h3>
<img src="prop_type.png">
<p>Переменные в програмном коде имеют разные типы данных. Этот объект служит для задания типов данных, с которыми в последствии можно связывать объекты переменных. Один объект типа данных может много раз использоваться для задания типов переменных.</p>
<h3><a name="obj_vari">Переменная</a></h3>
<img src="prop_vari.png">
<p>Объект переменной содержит 3 текстовых свойства: 1) имя переменной, 2) значение по умолчанию, 3) комментарий;
и одну ссылку на объект типа данного или объект структуры.</p>
<h3><a name="obj_stru">Структура</a></h3>
<img src="prop_stru.png">
<p>Объект структуры содержит 2 текстовых свойства: 1) имя структуры, 2) параметры для макроса. Свойство <i>параметры для макроса</i> не обязательно для заполнения.
Структура должна содержать в себе переменные. Все объекты переменных структуры должны быть расположены уровнем ниже чем объект структуры, таким образом программа при создании кода определит где находится начало и конец данных структуры.</p>
<h3><a name="obj_code">Asm код</a></h3>
<img src="prop_code.png">
<p>Объект содержащий програмный код, который вставляется в генерируемую программу.
Длина кода ограничивается размером константы MAX_LEN_OBJ_TXT (200 символов).
Подобный объект нужен для задания каких-либо готовых пользовательских функций или для выхода из нестандартных заранее не предусмотренных ситуаций.
Может возникнуть ситуация, когда через использование других объектов решение задачи может оказаться нецелесообразным, например такой код:</p>
<pre>struct p
a dd ?
b dd ?
ends</pre>
<p>Можно создать из 3-х обектов: 1-на структура и 2 переменные или обойтись 1-м объектом <i>asm кода</i>.</p>
<h3><a name="obj_auto">Авто код</a></h3>
<img src="prop_auto.png">
<p>Для програмирования некоторых объектов необходимо написание кода в разных местах программы.
Но один объект не может создавать свой код в разных местах. Для решения этой задачи был создан объект <b>авто кода</b>.
Он может автоматически создавать коды других объектов.
Этот объект содержит текстовое свойство, которое используется как подсказка пользователю, но в програмный код не попадает.
Также содержит флаги, от которых зависит какой именно код будет создаваться, вот они:</p>
<ul>
<li>первоначальные настройки элементов</li>
<li>события от мыши</li>
<li>коды элементов</li>
<li>нажатия на кнопки</li>
</ul>
<p>Этот объект работает в связке с другими объектами, а сам по себе никакого кода не создает.</p>
<h3><a name="obj_libr">Импорт библиотеки</a></h3>
<img src="prop_libr.png">
<p>Данный объект служит для создания структуры импорта библиотеки. Содержит параметры:</p>
<ul>
<li>имя библиотеки</li>
<li>путь к системной директории для поиска библиотеки</li>
<li>метка используемая при импорте</li>
<li>приставка, которая будет добавляться перед именем каждой импортируемой функции</li>
<li>текст ошибки который появляется если библиотека не найдена</li>
<li>текст ошибки который появляется если возникли проблемы с импортом функций из библиотеки</li>
</ul>
<p>Для создания програмного кода этого объекта нужен объект <a href="#obj_auto">авто кода</a> с включенной опцией <b>коды элементов</b>.
Этот объект используется вместе с объектами <a href="#obj_ifun">функция из библиотеки</a>, которые должны быть дочерними для него.</p>
<h3><a name="obj_ifun">Функция из библиотеки</a></h3>
<img src="prop_ifun.png">
<p>Данные объекты служат для создания указателей на функции импортируемые из библиотеки. Содержит параметры:</p>
<ul>
<li>програмное имя функции (то имя каким функция будет называться в пользовательской програме)</li>
<li>импортируемое имя функции (то имя которое записано в библиотеке)</li>
</ul>
<p>В большинстве случаев эти параметры будут совпадать друг с другом.
Эти объекты используется вместе с объектами <a href="#obj_libr">импорт библиотеки</a>, которые должны быть родительскими для них.</p>
<h3><a name="obj_incl">Включение файла</a></h3>
<img src="prop_incl.png">
<p>Объект создания кода подключения файлов, через ключевое слово <b>include</b>. Содержит параметры:</p>
<ul>
<li>имя файла (вместе с путем и одинарными кавычками)</li>
<li>комментарий (используется если пользователю необходимо добавить описание подключаемого файла)</li>
</ul>
<h3></h3>
<p></p>
<h2>Автор</h2>
<p>Игорь А. (IgorA) - разработка программы.</p>
</body>
</html>