Files
kolibrios/programs/develop/kol_f_edit/docs
ace_dent 33d9aafa30 Optimize png files for programs/develop
Lossless optimization of png image files, using `pngslim` and other tools.
Program graphics (compiled or included with software):
- Slimmed 28.7 KiB (~28.5 KiB kpacked), average ~19% saving for 13 files.
Documentation only artwork (distributed outside of a program):
- Slimmed 100 KiB (~91 KiB kpacked), average ~38% saving for 27 files.

git-svn-id: svn://kolibrios.org@10031 a494cfbc-eb01-0410-851d-a64ba20cac60
2024-05-14 21:07:20 +00:00
..

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<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 - &quot;минимальная&quot; программа, 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>