kolibrios/programs/develop/libraries/box_lib/trunk/doc/t_edit/t_edit.htm
IgorA 6db5aa0119 1) removed duplicate code in 'box_lib'
2) add program 'TextEditor syntax file editor'

git-svn-id: svn://kolibrios.org@1476 a494cfbc-eb01-0410-851d-a64ba20cac60
2010-05-30 21:27:14 +00:00

380 lines
18 KiB
HTML

<html>
<head>
<title>ýëåìåíò Text Editor</title>
<meta http-equiv="content-type" content="text/html; charset=WINDOWS-1251">
<link href="../style.css" type=text/css rel=stylesheet>
</head>
<body>
<p><a href="../box_lib.htm">Íà ãëàâíóþ &uarr;</a></p>
<h1>Îãëàâëåíèå</h1>
<p><a href="#vveden">Ââåäåíèå</a></p>
<p><a href="#funct">Ôóíêöèè</a></p>
<ul>
<li><a href="#fun_but_copy">ted_but_copy</a></li>
<li><a href="#fun_but_cut">ted_but_cut</a></li>
<li><a href="#fun_but_find_next">ted_but_find_next</a></li>
<li><a href="#fun_but_paste">ted_but_paste</a></li>
<li><a href="#fun_but_redo">ted_but_redo</a></li>
<li><a href="#fun_but_reverse">ted_but_reverse</a></li>
<li><a href="#fun_but_save_file">ted_but_save_file</a></li>
<li><a href="#fun_but_select_word">ted_but_select_word</a></li>
<li><a href="#fun_but_sumb_lover">ted_but_sumb_lover</a></li>
<li><a href="#fun_but_sumb_upper">ted_but_sumb_upper</a></li>
<li><a href="#fun_but_undo">ted_but_undo</a></li>
<li><a href="#fun_can_save">ted_can_save</a></li>
<li><a href="#fun_clear">ted_clear</a></li>
<li><a href="#fun_delete">ted_delete</a></li>
<li><a href="#fun_draw">ted_draw</a></li>
<li><a href="#fun_init">ted_init</a></li>
<li><a href="#fun_init_scroll_bars">ted_init_scroll_bars</a></li>
<li><a href="#fun_init_syntax_file">ted_init_syntax_file</a></li>
<li><a href="#fun_is_select">ted_is_select</a></li>
<li><a href="#fun_key">ted_key</a></li>
<li><a href="#fun_mouse">ted_mouse</a></li>
<li><a href="#fun_open_file">ted_open_file</a></li>
<li><a href="#fun_text_add">ted_text_add</a></li>
<li><a href="#fun_text_colored">ted_text_colored</a></li>
</ul>
<p><a href="#syn_file">Ôîðìàò ôàéëà ïîäñâåòêè *.syn</a></p>
<p><a href="#struc_tedit">Ñòðóêòóðà tedit</a></p>
<h1><a name="vveden">Ââåäåíèå</a></h1>
<p>Ýëåìåíò text_editor ïîçâîëÿåò ðàáîòàòü ñ òåêñòîâûìè ôàéëàìè, ñîäåðæèò ìíîãî ôóíêöèé äëÿ ðåäàêòèðîâàíèÿ òåêñòà.</p>
<p><img src="../../../../../../other/t_edit/t_edit.png"></p>
<p>Âíåøíèé âèä ïðîãðàììû, ñ ýëåìåíòîì text_editor.</p>
<h2>Âîçìîæíîñòè ýëåìåíòà</h2>
<ul>
<li>Îòêðûòèå (Ctrl+O)/Ñîõðàíåíèå ôàéëà.</li>
<li>Ðåäàêòèðîâàíèå: Ïîâòîð/Îòìåíà äåéñòâèÿ (Ctrl+Z), Âûðåçàòü/Êîïèðîâàòü (Ctrl+C)/Âñòàâèòü (Ctrl+V), Ïîèñê (Ctrl+F, F3).</li>
<li>Âûäåëåíèå öâåòîì ñëîâ, çàäàííûõ â ôàéëå ñèíòàêñèñà. Âûâîä ñïðàâêè ïî íèì, åñëè îíà åñòü (íàæàòèåì F1 êîãäà êóðñîð íà ñëîâå).</li>
</ul>
<h2>Î ðàáîòå ýëåìåíòà</h2>
<p>Ðàçäåë äëÿ ïðîãðàììèñòîâ (è èíòåðåñóþùèõñÿ ëþäåé), â êîòîðîì ðàñêàçàíû
íåêîòîðûå èäåè, íà êîòîðûõ ïîñòðîåíà äàííàÿ ïðîãðàììà.</p>
<p>Äëÿ ðàáîòû ñ òåêñòîì ïðîãðàììà èñïîëüçóåò ñòðóêòóðû:</p>
<pre>struct symbol
c db ? ; +0 ñèìâîë
col db ? ; +1 öâåò
perv dd ? ; +2
next dd ? ; +6 óêàçàòåëè
tc dd ? ; +10 âðåì. ñîçäàíèÿ
td dd ? ; +14 âðåì. óäàëåíèÿ
ends</pre>
<p>Êàæäàÿ èç òàêèõ ñòðóêòóð ñîõðàíÿåò îäèí ñèìâîë â ïåðåìåííîé 'c'. Ïåðåìåííûå
'perv' è 'next' õðàíÿò èíäåêñû ïåðâîãî è ñëåäóþùåãî ñèìâîëîâ. Áëàãîäàðÿ ÷åìó
òåêñò ñîçäàåòñÿ â âèäå öåïî÷êè ñèìâîëîâ (äâóíàïðàâëåííûé ñïèñîê).</p>
<p><b>'tc'</b> - âðåìÿ ñîçäàíèÿ ñèìâîëà, ïðè îòìåíå äåéñòâèÿ òåêñòîâûé ðåäàêòîð "çíàåò"
êàêèå ñèìâîëû îòîáðàæàòü, à êàêèå íåò (õîòÿ âñå ñèìâîëû "âèñÿò" â ïàìÿòè).</p>
<p><b>'td'</b> - âðåìÿ óäàëåíèÿ ñèìâîëà, çàïîëíÿåòñÿ ïðè óäàëåíèè, ïðè îòìåíå äåéñòâèÿ
óäàëåíèÿ ñèìâîëîâ, òåêñò ìîæåò áûòü âîññòàíîâëåí.</p>
<p><b>'col'</b> - èñïîëüçóåòñÿ äëÿ öâåòîâîé ðàçìåòêè, ñîäåðæèò èíäåêñ öâåòà â ìàññèâå öâåòîâ ted_text_colors.</p>
<h1><a name="funct">Ôóíêöèè</a></h1>
<h2>Ôóíêöèè íà ýêñïîðò:</h2>
<h4><a name="fun_but_copy">ted_but_copy</a></h4>
<p>Ôóíêöèÿ êîòîðàÿ áóäåò âûçûâàòüñÿ ïðè íàæàòèè íà êíîïêó êîïèðîâàíèÿ â áóôåð èëè íà <b>Ctrl+C</b>. Òåêñò êîïèðóåòñÿ â áóôåð <b>ted_buffer</b>, ìàêñèìàëüíûé ðàçìåð áóôåðà óêàçûâàåòñÿ â <b>ted_buffer_size</b>.</p>
<p>Ïðèìåð èñïîëüçîâàíèÿ:</p>
<pre>stdcall [ted_but_copy], tedit0</pre>
<h4><a name="fun_but_cut">ted_but_cut</a></h4>
<p>Ôóíêöèÿ âûðåçàåò âûäåëåííûé òåêñò è êîïèðóåò åãî â áóôåð.</p>
<p>Ïðèìåð èñïîëüçîâàíèÿ:</p>
<pre>stdcall [ted_but_cut], tedit0</pre>
<h4><a name="fun_but_find_next">ted_but_find_next</a></h4>
<p>Ôóíêöèÿ äëÿ ïîèñêà òåêñòà. Èùåò òåêñò èç áóôåðà <b>ted_buffer_find</b>, ïðè íàõîæäåíèè ïåðåìåùàåò êóðñîð ê íàéäåíîìó òåêñòó è âûäåëÿåò åãî.</p>
<p>Ïðèìåð èñïîëüçîâàíèÿ:</p>
<pre>stdcall [ted_but_find_next], tedit0</pre>
<h4><a name="fun_but_paste">ted_but_paste</a></h4><p></p>
<p>Ôóíêöèÿ âñòàâëÿåò òåêñò èç áóôåðà <b>ted_buffer</b>.</p>
<p>Ïðèìåð èñïîëüçîâàíèÿ:</p>
<pre>stdcall [ted_but_paste], tedit0</pre>
<h4><a name="fun_but_redo">ted_but_redo</a></h4>
<p>Ïîâòîðÿåò îòìåíåííûå äåéñòâèÿ ïî ðåäàêòèðîâàíèþ òåêñòà.</p>
<p>Ïðèìåð èñïîëüçîâàíèÿ:</p>
<pre>stdcall [ted_but_redo], tedit0</pre>
<h4><a name="fun_but_reverse">ted_but_reverse</a></h4>
<p>Ìåíÿåò ïîðÿäîê ñëåäîâàíèÿ ñèìâîëîâ â âûäåëåííîì òåêñòå.</p>
<p>Ïðèìåð èñïîëüçîâàíèÿ:</p>
<pre>stdcall [ted_but_reverse], tedit0</pre>
<h4><a name="fun_but_save_file">ted_but_save_file</a></h4>
<p>Ôóíêöèÿ äëÿ ñîõðàíåíèÿ ôàéëà. Ïðèíèìàåò 3 ïàðàìåòðà:</p>
<p>1) ñòðóêòóðà tedit,</p>
<p>2) ñòðóêòóðà äëÿ ðàáîòû 70-é ôóíêöèè (äî âûçîâà ôóíêöèè çàïîëíåíèÿ íå òðåáóåò),</p>
<p>3) ñòðîêà ñ ïóòåì è èìåíåì ôàéëà.</p>
<p>Ïðèìåð èñïîëüçîâàíèÿ:</p>
<pre>stdcall [ted_but_save_file], tedit0,run_file_70,[edit1.text]</pre>
<h4><a name="fun_but_select_word">ted_but_select_word</a></h4>
<p>Ôóíêöèÿ äëÿ âûäåëåíèÿ êëþ÷åâîãî ñëîâà ïîä êóðñîðîì. Åñëè êëþ÷åâûå ñëîâà íå èñïîëüçóþòñÿ, òîãäà áóäåò âûäåëåí âåñü òåêñò.</p>
<p>Ïðèìåð èñïîëüçîâàíèÿ:</p>
<pre>stdcall [ted_but_select_word], tedit0</pre>
<h4><a name="fun_but_sumb_lover">ted_but_sumb_lover</a></h4>
<p>Ïåðåâîäèò âûäåëåííûå ñèìâîëû ê íèæíåìó ðåãèñòðó.</p>
<p>Ïðèìåð èñïîëüçîâàíèÿ:</p>
<pre>stdcall [ted_but_sumb_lover], tedit0</pre>
<h4><a name="fun_but_sumb_upper">ted_but_sumb_upper</a></h4>
<p>Ïåðåâîäèò âûäåëåííûå ñèìâîëû ê âåðõíåìó ðåãèñòðó.</p>
<p>Ïðèìåð èñïîëüçîâàíèÿ:</p>
<pre>stdcall [ted_but_sumb_upper], tedit0</pre>
<h4><a name="fun_but_undo">ted_but_undo</a></h4>
<p>Îòìåíÿåò äåéñòâèÿ ïî ðåäàêòèðîâàíèþ òåêñòà. Äåéñòâèÿ ôóíêöèè <b>ted_but_reverse</b> íå îòìåíÿþòñÿ.</p>
<p>Ïðèìåð èñïîëüçîâàíèÿ:</p>
<pre>stdcall [ted_but_undo], tedit0</pre>
<h4><a name="fun_can_save">ted_can_save</a></h4>
<p>Ôóíêöèÿ êîòîðàÿ ïðîâåðÿåò áûëè ëè íå ñîõðàíåííûå èçìåíåíèÿ â òåêñòå. Ðåçóëüòàò âîçâðàùàåòñÿ â ðåãèñòð <b>al</b>, åñëè èçìåíåíèÿ áûëè òî âîçâðàùàåò 1 èíà÷å 0.</p>
<p>Ïðèìåð èñïîëüçîâàíèÿ:</p>
<pre>push eax
stdcall [ted_can_save], tedit0
cmp al,1
.........
pop eax</pre>
<h4><a name="fun_clear">ted_clear</a></h4>
<p>Î÷èñòêà òåêñòà â îêíå ðåäàêòîðà. Ïðèíèìàåò 2 ïàðàìåòðà:</p>
<p>1) ñòðóêòóðà tedit,</p>
<p>2) ïàðàìåòð îïðåäåëÿåò áóäåò ëè î÷èñòêà ïàìÿòè ïîëíîé.</p>
<p>Åñëè 2-é ïàðàìåòð ðàâåí 1, òî î÷èñòêà áóäåò ïîëíîé, ïðè 0 íåò. Ïîëüçîâàòåëþ íóæíî âûçûâàòü ôóíêöèþ ñ ïàðàìåòðîì 1, ïàðàìåòð 0 äëÿ âíóòðåííåãî èñïîëüçîâàíèÿ.</p>
<p>Ïðèìåð èñïîëüçîâàíèÿ:</p>
<pre>stdcall [ted_clear], tedit0,1</pre>
<h4><a name="fun_delete">ted_delete</a></h4>
<p>Äåñòðóêòîð ýëåìåíòà, îñâîáîæäàåò ïàìÿòü çàíÿòóþ ýëåìåíòîì.</p>
<p>Ïðèìåð èñïîëüçîâàíèÿ:</p>
<pre>stdcall [ted_delete], tedit0</pre>
<h4><a name="fun_draw">ted_draw</a></h4>
<p>Ïåðåðèñîâêà âñåãî îêíà ðåäàêòîðà, âêëþ÷àÿ äî÷åðíèå ñêðîëëèíãè.</p>
<p>Ïðèìåð èñïîëüçîâàíèÿ:</p>
<pre>stdcall [ted_draw], tedit0</pre>
<h4><a name="fun_init">ted_init</a></h4>
<p>Êîíñòðóêòîð ýëåìåíòà, âûäåëÿåò ïàìÿòü íåîáõîäèìóþ äëÿ ðàáîòû òåêñòîâîãî ðåäàêòîðà.</p>
<p>Ïðèìåð èñïîëüçîâàíèÿ:</p>
<pre>stdcall [ted_init], tedit0</pre>
<h4><a name="fun_init_scroll_bars">ted_init_scroll_bars</a></h4>
<p>Óñòàíàâëèâàåò öâåò ñêðîëëèíãîâ è íàñòðàèâàåò èõ ðàçìåðû â çàâèñèìîñòè îò ðàçìåðîâ îêíà. Ìîæíî âûçûâàòü ýòó ôóíêöèþ ïðè èçìåíåíèè ðàçìåðîâ îêíà â ïîëüçîâàòåëüñêîé ïðîãðàììå. Ïðèíèìàåò 2 ïàðàìåòðà:</p>
<p>1) ñòðóêòóðà tedit,</p>
<p>2) îïöèè, óêàçûâàþò êàêèå íóæíî èçìåíèòü ïàðàìåòðû:</p>
<ul>
<li>1 - èçìåíèòü öâåòà ñêðîëëèíãîâ</li>
<li>2 - èçìåíèëñÿ ðàçìåð îêíà</li>
<li>4 - èçìåíèëñÿ ðàçìåð äîêóìåíòà</li>
</ul>
<p>Ïàðàìåòðû ìîæíî êîìáèíèðîâàòü ÷åðåç <i>ëîãè÷åñêîå èëè</i>.</p>
<p>Ïðèìåð èñïîëüçîâàíèÿ:</p>
<pre>stdcall [ted_init_scroll_bars], tedit0,2</pre>
<h4><a name="fun_init_syntax_file">ted_init_syntax_file</a></h4>
<p>Ôóíêöèÿ äëÿ çàãðóçêè öâåòîâ èíòåðôåéñà è êëþ÷åâûõ ñëîâ èç ôàéëà ñèíòàêñèñà. Ïðèíèìàåò 3 ïàðàìåòðà:</p>
<p>1) ñòðóêòóðà tedit,</p>
<p>2) ñòðóêòóðà äëÿ ðàáîòû 70-é ôóíêöèè (äî âûçîâà ôóíêöèè çàïîëíåíèÿ íå òðåáóåò),</p>
<p>3) ñòðîêà ñ ïóòåì è èìåíåì ôàéëà ñèíòàêñèñà.</p>
<p>Ïðèìåð èñïîëüçîâàíèÿ:</p>
<pre>stdcall [ted_init_syntax_file], tedit0,run_file_70,file_name</pre>
<h4><a name="fun_is_select">ted_is_select</a></h4>
<p>Îïðåäåëÿåò åñòü â îêíå ðåäàêòîðà âûäåëåííûé òåêñò. Åñëè åñòü â ðåãèñòð <b>al</b> çàïèñûâàåòñÿ 1 èíà÷å 0. Ôóíêöèÿ íåîáõîäèìà äëÿ ñîçäàíèÿ ïàíåëåé èíñòðåìåíòîâ, â êîòîðûõ â çàâèñèìîñòè îò âûäåëåíèÿ áóäóò äîñòóïíû èëè çàáëîêèðîâàíû îïðåäåëåííûå êíîïêè (äåéñòâèÿ). Íàïðèìåð êíîïêó äëÿ êîïèðîâàíèÿ â áóôåð ìîæíî çàáëîêèðîâàòü åñëè íåò âûáðàííîãî òåêñòà.</p>
<p>Ïðèìåð èñïîëüçîâàíèÿ:</p>
<pre>push eax edi
mov edi,tedit0
call [ted_is_select]
cmp al,0
.........
pop edi eax</pre>
<h4><a name="fun_key">ted_key</a></h4>
<p>Ôóíêöèÿ âûçûâàåìàÿ äëÿ ðåàêöèè íà êëàâèàòóðó. Â ðåãèñòðå <b>eax</b> äîëæåí áûòü êîä íàæàòîé êëàâèøè. Ïðèíèìàåò 3 ïàðàìåòðà:</p>
<p>1) ñòðóêòóðà tedit,</p>
<p>2) òàáëèöà äëÿ êîíâåðòàöèè scan êîäîâ â ascii,</p>
<p>3) óïðàâëÿþùèå ñèìâîëû.</p>
<p>Ïðèìåð èñïîëüçîâàíèÿ:</p>
<pre>mcall 66,3 ;66.3 ïîëó÷èòü ñîñòîÿíèå óïðàâëÿþùèõ êëàâèø
xor esi,esi
mov ecx,1
test al,0x03 ;[Shift]
jz @f
mov cl,2
or esi,KM_SHIFT
@@:
test al,0x0c ;[Ctrl]
jz @f
or esi,KM_CTRL
@@:
test al,0x30 ;[Alt]
jz @f
mov cl,3
or esi,KM_ALT
@@:
test al,0x80 ;[NumLock]
jz @f
or esi,KM_NUMLOCK
@@:
mcall 26,2,,conv_tabl ;26.2 ïîëó÷èòü ðàñêëàäêó êëàâèàòóðû
mcall 2 ;ïîëó÷àåì êîä íàæàòîé êëàâèøè
stdcall [ted_key], tedit0, conv_tabl,esi</pre>
<h4><a name="fun_mouse">ted_mouse</a></h4>
<p>Ôóíêöèÿ íà ïåðåìåùåíèå èëè íàæàòèå ìûøè.</p>
<p>Ïðèìåð èñïîëüçîâàíèÿ:</p>
<pre>stdcall [ted_mouse], tedit0</pre>
<h4><a name="fun_open_file">ted_open_file</a></h4>
<p>Ôóíêöèÿ äëÿ îòêðûòèÿ ôàéëà. Ïðèíèìàåò 3 ïàðàìåòðà:</p>
<p>1) ñòðóêòóðà tedit,</p>
<p>2) ñòðóêòóðà äëÿ ðàáîòû 70-é ôóíêöèè (äî âûçîâà ôóíêöèè çàïîëíåíèÿ íå òðåáóåò),</p>
<p>3) ñòðîêà ñ ïóòåì è èìåíåì ôàéëà.</p>
<p>Âîçâðàùàåò 2 ïàðàìåòðà:</p>
<p>1) eax = êîä îøèáêè</p>
<p>2) ebx = êîëëè÷åñòâî ïðî÷èòàííûõ áàéò</p>
<p>Ïðèìåð èñïîëüçîâàíèÿ:</p>
<pre>push eax ebx
stdcall [ted_open_file], tedit0,run_file_70,[edit1.text]
.........
pop ebx eax</pre>
<h4><a name="fun_text_add">ted_text_add</a></h4>
<p>Ôóíêöèÿ äëÿ äîáàâëåíèÿ òåêñòà. Ïðèíèìàåò 4 ïàðàìåòðà:</p>
<p>1) ñòðóêòóðà tedit,</p>
<p>2) óêàçàòåëü íà áóôåð ñ òåêñòîì,</p>
<p>3) äëèíà òåêñòà,</p>
<p>4) îïöèè âñòàâêè.</p>
<p>Ïðèìåð èñïîëüçîâàíèÿ:</p>
<pre>text_buffer db 500 dup(0)
.........
mov ebx,ted_opt_ed_change_time+ted_opt_ed_move_cursor
stdcall [ted_text_add], tedit0,text_buffer,30,ebx</pre>
<p><b>ted_opt_ed_change_time</b> - ôèêñèðîâàòü èçìåíåíèÿ äîêóìåíòà, ÷òî-áû èõ ìîæíî áûëî îòìåíèòü. Íàïðèìåð åñëè íóæíî ñäåëàòü íåñêîëüêî èçìåíåíèé òåêñòà, êîòîðûå áóäóò îòìåíÿòüñÿ çà îäèí ðàç, òî 1-å èçìåíåíèå èäåò ñ ýòîé êîíñòàíòîé à îñòàëüíûå íåò.</p>
<p><b>ted_opt_ed_move_cursor</b> - êîíñòàíòà êîòîðàÿ îïðåäåëÿåò ñäâèã êóðñîðà ïîñëå äîáàâëåíèÿ òåêñòà.</p>
<h4><a name="fun_text_colored">ted_text_colored</a></h4>
<p>Ôóíêöèÿ äëÿ ðàçìåòêè òåêñòà öâåòîì. Îáû÷íî âûçûâàåòñÿ âíóòðè ñàìîé áèáëèîòåêè, ïðè èçìåíåíèÿõ òåêñòà.  íåêîòîðûõ ñëó÷àÿõ ìîæåò ïîíàäîáèòüñÿ âûçâàòü ïðèíóäèòåëüíî èç âíåøíåé ïðîãðàììû.</p>
<p>Ïðèìåð èñïîëüçîâàíèÿ:</p>
<pre>push edi
mov edi,tedit0
call [ted_text_colored]
pop edi</pre>
<h2>Âíóòðåííèå ôóíêöèè:</h2>
<p><b>ted_get_text_perv_pos</b> - ïåðåõîä íà ïðåäûäóùèé ñèìâîë â öåïè (÷åðåç óêàçàòåëü 'perv')</p>
<p><b>ted_get_text_next_pos</b> - ïåðåõîä íà ñëåäóþùèé ñèìâîë â öåïè (÷åðåç óêàçàòåëü 'next')</p>
<p><b>ted_symbol_not_vis</b> - îïðåäåëÿåò âèäèìûé ëè óêàçàííûé ñèìâîë íà ýêðàíå (â çàâèñèìîñòè
îò çíà÷åíèé 'tc' è 'td')</p>
<p><b>ted_iterat_next</b> - ïåðåõîä íà ñëåäóþùèé âèäèìûé ñèìâîë â öåïè. Èñïîëüçóåò äëÿ
ðàáîòû ôóíêöèè ted_get_text_next_pos è ted_symbol_not_vis.</p>
<p><b>ted_iterat_perv</b> - ïåðåõîä íà ïðåäåäóùèé âèäèìûé ñèìâîë â öåïè.</p>
<p><b>ted_iterat_next_pos_char</b> - íàéòè ñëåäóþùóþ ïîçèöèþ óêàçàííîãî ñèìâîëà (edx-ïîç. íà÷àëà
ïîèñêà, bl->êîä èñêîìîãî ñèìâîëà)</p>
<p><b>ted_get_pos_by_coords</b> - áåðåò ïîçèöèþ ñèìâîëà ïî êîîðäèíàòàì (esi->êîîðä. x, çíàê;
ecx->êîîðä. y, ñòðîêà)</p>
<p><b>ted_go_to_pos</b> - ïåðåñòàâëÿåò êóðñîð â óêàçàííóþ ïîçèöèþ, åñëè óêàçàííàÿ ïîçèöèÿ
íàõîäèòñÿ âíå ýêðàíà, òî òàêæå ïåðåñòàâëÿþòñÿ ñêðîëèíãè (ecx->êîîðä. x, çíàê; edx->êîîðä. y, ñòðîêà)</p>
<h1><a name="syn_file">Ôîðìàò ôàéëà ïîäñâåòêè *.syn</a></h1>
<table>
<tr><th>Ýëåìåíò</th><th>Ðàçìåð (áàéò)</th></tr>
<tr><td>Êîëè÷åñòâî öâåòîâ òåêñòà</td>
<td><pre>4</pre></td></tr>
<tr><td>Êîëè÷åñòâî ïîäñâå÷èâàåìûõ ñëîâ</td>
<td><pre>4</pre></td></tr>
<tr><td>Öâåòà èíòåðôåéñà</td>
<td><pre>4*6</pre></td></tr>
<tr><td>Öâåòà äëÿ òåêñòà</td>
<td><pre>4*(êîë. öâ. òåêñòà)</pre></td></tr>
<tr><td>Ñòðóêòóðû ñî ñâîéñòâàìè è îïèñàíèÿìè ñëîâ</td>
<td><pre>sizeof(TexColViv)*(êîë. ñëîâ)</pre></td></tr>
<tr><td>Ðàçäåëèòåëüíûé ñèìâîë, îçíà÷àþùèé íà÷àëî îïèñàíèé ñëîâ (âñåãäà ðàâåí 0)</td>
<td><pre>1 áàéò</pre></td></tr>
<tr><td>Îïèñàíèÿ ñëîâ (ñòðîêè òåêñòà ñ 0-ìè â êîíöå)</td>
<td><pre>(äëèííà ñïðàâî÷íîãî òåêñòà + 1)</pre></td></tr>
</table>
<h4>Çàìå÷àíèÿ.</h4>
<ul>
<li>Âñå ñëîâà äîëæíû áûòü ðàñïîëîæåíû â ïîðÿäêå ñëåäîâàíèÿ èõ ASCII êîäîâ.
Âîçìîæíî â áóäóùèõ âåðñèÿõ ôîðìàò ôàéëîâ ïîäñâåòêè áóäåò èçìåíåí.</li>
</ul>
<h1><a name="struc_tedit">Ñòðóêòóðà tedit</a></h1>
<p>Ìàêðîñà äëÿ ñîçäàíèÿ ñòðóêòóðû òåêñòîâîãî ðåäàêòîðà íåò. Ïîòîìó äàííûå äëÿ íåãî çàäàþòñÿ âðó÷íóþ. Ïðèìåð ñòðóêòóðû äëÿ òåêñòîâîãî ðåäàêòîðà:</p>
<pre>align 4
tedit0: ;ñòðóêòóðà òåêñòîâîãî ðåäàêòîðà
.wnd BOX 195,5+20,325,260 ;+ 0
.rec BOX 30,13,7,10 ;+16
.drag_m db 0 ;+32 âûäåëåíèå îò ìûøè
.drag_k db 0 ;+33 âûäåëåíèå îò êëàâèàòóðû
.sel TexSelect 0,0,0,0 ;+34 ñòðóêòóðà âûäåëåíèÿ
.seln TexSelect ;+50 äîïîëíèòåëüíàÿ ñòðóêòóðà âûäåëåíèÿ
.tex dd 0 ;+66 text memory pointer
.tex_1 dd 0 ;+70 text first symbol pointer
.tex_end dd 0 ;+74 text end memory pointer
.cur_x dd 0 ;+78 êîîðäèíàòà x êóðñîðà
.cur_y dd 0 ;+82 êîîðäèíàòà y êóðñîðà
.max_chars dd 5002 ;+86 ìàêñèìàëüíîå ÷èñëî ñèìâîëîâ â îäíîì äîêóìåíòå
.count_colors_text dd 1 ;+90 êîëëè÷åñòâî öâåòîâ òåêñòà
.count_key_words dd 0 ;+94 êîëëè÷åñòâî êëþ÷åâûõ ñëîâ
.color_cursor dd 0xff0000 ;+98 öâåò êóðñîðà
.color_wnd_capt dd 0x0080c0 ;+102 öâåò ïîëåé âîêðóã îêíà
.color_wnd_work dd 0x0 ;+106 öâåò ôîíà îêíà
.color_wnd_bord dd 0xffffff ;+110 öâåò òåêñòà íà ïîëÿõ
.color_select dd 0x0000ff ;+114 öâåò âûäåëåíèÿ
.color_cur_text dd 0xffff00 ;+118 öâåò ñèìâîëà ïîä êóðñîðîì
.color_wnd_text dd 0x80ffff ;+122 öâåò òåêñòà â îêíå
.syntax_file dd 0 ;+126 óêàçàòåëü íà íà÷àëî ôàéëà ñèíòàêñèñà
.syntax_file_size dd 500 ;+130 ìàêñèìàëüíûé ðàçìåð ôàéëà ñèíòàêñèñà
.text_colors dd 0 ;+134 óêàçàòåëü íà ìàññèâ öâåòîâ òåêñòà
.help_text_f1 dd 0 ;+138 óêàçàòåëü íà òåêñò ñïðàâêè (ïî íàæàòèè F1)
.help_id dd -1 ;+142 èäåíòèôèêàòîð äëÿ ñïðàâêè
.key_words_data dd 0 ;+146 óêàçàòåëü íà ñòðóêòóðû êëþ÷åâûõ ñëîâ TexColViv
.tim_ch dd ? ;+150 êîëè÷åñòâî èçìåíåíèé â ôàéëå
.tim_undo dd ? ;+154 êîëè÷åñòâî îòìåíåííûõ äåéñòâèé
.tim_ls dd ? ;+158 âðåìÿ ïîñëåäíåãî ñîõðàíåíèÿ
.tim_co dd ? ;+162 âðåìÿ ïîñëåäíåé öâåòîâîé ðàçìåòêè
.el_focus dd el_focus ;+166 óêàçàòåëü íà ïåðåìåííóþ ýëåìåíòà â ôîêóñå
.err_save db 0 ;+170 îøèáêà ñîõðàíåíèÿ ôàéëà
.panel_id db 0 ;+171 íîìåð îòêðûòîé ïàíåëè
.key_new db 0 ;+172 ñèìâîë, êîòîðûé áóäåò äîáàâëÿòñÿ ñ êëàâèàòóðû
.symbol_new_line db 20 ;+173 ñèìâîë çàâåðøåíèÿ ñòðîêè
.scr_w dd scrol_w1 ;+174 âåðòèêàëüíûé ñêðîëëèíã
.scr_h dd scrol_h1 ;+178 ãîðèçîíòàëüíûé ñêðîëëèíã
.arr_key_pos dd 0 ;+182 óêàçàòåëü íà ìàññèâ ïîçèöèé êëþ÷åâûõ ñëîâ
.buffer dd buf ;+186 óêàçàòåëü íà áóôåð êîïèðîâàíèÿ/âñòàâêè
.buffer_find dd 0 ;+190 óêàçàòåëü íà áóôåð äëÿ ïîèñêà
.cur_ins db 1 ;+194 ðåæèì ðàáîòû êóðñîðà (îáû÷íûé èëè çàìåíà)
.mode_color db 1 ;+195 ðåæèì âûäåëåíèÿ ñëîâ öâåòîì (0-âûêë. 1-âêë.)
.mode_invis db 0 ;+196 ðåæèì ïîêàçà íåïå÷àòàåìûõ ñèìâîëîâ
.gp_opt db 0 ;+197 îïöèè âîçâðàùàåìûå ôóíêöèåé ted_get_pos_by_cursor
.fun_on_key_ctrl_o dd but_ctrl_o ;+198 óêàçàòåëü íà ôóíêöèþ âûçûâàåìóþ ïðè íàæàòèè Ctrl+O (îòêðûòèå ôàéëà)
.fun_on_key_ctrl_f dd 0 ;+202 ... Ctrl+F (âûçîâà/ñêðûòèÿ ïàíåëè ïîèñêà)
.fun_on_key_ctrl_n dd but_ctrl_n ;+206 ... Ctrl+N (ñîçäàíèå íîâîãî äîêóìåíòà)
.fun_on_key_ctrl_s dd 0 ;+210 ... Ctrl+S
.buffer_size dd BUF_SIZE ;+214 ðàçìåð áóôåðà êîïèðîâàíèÿ/âñòàâêè
.fun_find_err dd 0 ;+218 óêàçàòåëü íà ôóíêöèþ âûçûâàåìóþ åñëè ïîèñê çàêîí÷èëñÿ íåóäà÷íî
.fun_init_synt_err dd 0 ;+222 óêàçàòåëü íà ôóíêöèþ âûçûâàåìóþ ïðè îøèáî÷íîì îòêðûòèè ôàéëà ñèíòàêñèñà
.fun_draw_panel_buttons dd 0 ;+226 óêàçàòåëü íà ôóíêöèþ ðèñîâàíèÿ ïàíåëè ñ êíîïêàìè
.fun_draw_panel_find dd 0 ;+230 óêàçàòåëü íà ôóíêöèþ ðèñîâàíèÿ ïàíåëè ïîèñêà
.fun_draw_panel_syntax dd 0 ;+234 óêàçàòåëü íà ôóíêöèþ ðèñîâàíèÿ ïàíåëè ñèíòàêñèñà
.fun_save_err dd 0 ;+238 óêàçàòåëü íà ôóíêöèþ âûçûâàåìóþ åñëè ñîõðàíåíèå ôàéëà çàêîí÷èëîñü íåóäà÷íî
.increase_size dd 225 ;+242 ÷èñëî ñèìâîëîâ íà êîòîðûå áóäåò óâå÷èâàòüñÿ ïàìÿòü ïðè íåõâàòêå
.ptr_free_symb dd ? ;+246 óêàçàòåëü íà ñâîáîäíóþ ïàìÿòü, â êîòîðóþ ìîæíî äîáàâëÿòü ñèìâîë (èñïîëüçóåòñÿ âíóòðè ýëåìåíòà äëÿ óñêîðåíèÿ âñòàâêè òåêñòà)</pre>
<hr>
<p>Äîêóìåíòàöèÿ îáíîâëÿëàñü ïîñëåäíèé ðàç 30.05.10.</p>
</body>
</html>