Subversion Repositories Kolibri OS

Rev

Rev 1459 | Rev 1476 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. <html>
  2. <head>
  3. <title>ýëåìåíò Text Editor</title>
  4. <meta http-equiv="content-type" content="text/html; charset=WINDOWS-1251">
  5. <link href="../style.css" type=text/css rel=stylesheet>
  6. </head>
  7.  
  8. <body>
  9. <p><a href="../box_lib.htm">Íà ãëàâíóþ &uarr;</a></p>
  10. <h1>Îãëàâëåíèå</h1>
  11.  
  12. <p><a href="#vveden">Ââåäåíèå</a></p>
  13. <p><a href="#funct">Ôóíêöèè</a></p>
  14. <ul>
  15. <li><a href="#fun_but_copy">ted_but_copy</a></li>
  16. <li><a href="#fun_but_cut">ted_but_cut</a></li>
  17. <li><a href="#fun_but_find_next">ted_but_find_next</a></li>
  18. <li><a href="#fun_but_paste">ted_but_paste</a></li>
  19. <li><a href="#fun_but_redo">ted_but_redo</a></li>
  20. <li><a href="#fun_but_reverse">ted_but_reverse</a></li>
  21. <li><a href="#fun_but_save_file">ted_but_save_file</a></li>
  22. <li><a href="#fun_but_select_word">ted_but_select_word</a></li>
  23. <li><a href="#fun_but_sumb_lover">ted_but_sumb_lover</a></li>
  24. <li><a href="#fun_but_sumb_upper">ted_but_sumb_upper</a></li>
  25. <li><a href="#fun_but_undo">ted_but_undo</a></li>
  26. <li><a href="#fun_can_save">ted_can_save</a></li>
  27. <li><a href="#fun_clear">ted_clear</a></li>
  28. <li><a href="#fun_delete">ted_delete</a></li>
  29. <li><a href="#fun_draw">ted_draw</a></li>
  30. <li><a href="#fun_init">ted_init</a></li>
  31. <li><a href="#fun_init_scroll_bars">ted_init_scroll_bars</a></li>
  32. <li><a href="#fun_init_syntax_file">ted_init_syntax_file</a></li>
  33. <li><a href="#fun_is_select">ted_is_select</a></li>
  34. <li><a href="#fun_key">ted_key</a></li>
  35. <li><a href="#fun_mouse">ted_mouse</a></li>
  36. <li><a href="#fun_open_file">ted_open_file</a></li>
  37. <li><a href="#fun_text_add">ted_text_add</a></li>
  38. <li><a href="#fun_text_colored">ted_text_colored</a></li>
  39. </ul>
  40. <p><a href="#syn_file">Ôîðìàò ôàéëà ïîäñâåòêè *.syn</a></p>
  41. <p><a href="#struc_tedit">Ñòðóêòóðà tedit</a></p>
  42.  
  43. <h1><a name="vveden">Ââåäåíèå</a></h1>
  44. <p>Ýëåìåíò text_editor ïîçâîëÿåò ðàáîòàòü ñ òåêñòîâûìè ôàéëàìè, ñîäåðæèò ìíîãî ôóíêöèÿ äëÿ ðåäàêòèðîâàíèÿ òåêñòà.</p>
  45. <p><img src="../../../../../../other/t_edit/t_edit.png"></p>
  46. <p>Âíåøíèé âèä ïðîãðàììû, ñ ýëåìåíòîì text_editor.</p>
  47.  
  48. <h2>Âîçìîæíîñòè</h2>
  49. <ul>
  50.   <li>Îòêðûòèå (Ctrl+O)/Ñîõðàíåíèå ôàéëà.</li>
  51.   <li>Ðåäàêòèðîâàíèå: Ïîâòîð/Îòìåíà äåéñòâèÿ (Ctrl+Z), Âûðåçàòü/Êîïèðîâàòü (Ctrl+C)/Âñòàâèòü (Ctrl+V), Ïîèñê (Ctrl+F, F3).</li>
  52.   <li>Âûäåëåíèå öâåòîì ñëîâ, çàäàííûõ â ôàéëå ñèíòàêñèñà. Âûâîä ñïðàâêè ïî íèì, åñëè îíà åñòü (íàæàòèåì F1 êîãäà êóðñîð íà ñëîâå).</li>
  53. </ul>
  54.  
  55. <h2>Íåêîòîðûå íåäîðàáîòêè</h2>
  56. <ul>
  57. <li>Åñëè îòêðûòü áîëüøîé ôàéë, ðàçìåð êîòîðîãî áîëüøå ÷åì:
  58.     maxChars equ 100002 ;(...+2)
  59.   îí îòêðîåòñÿ íå âåñü, à ïåðâûå maxChars-2 ñèìâîëîâ èç ôàéëà
  60.   (î ÷åì âûäàåòñÿ ñîîáùåíèå).</li>
  61. <li>Ïðè ñîõðàíåíèè ïðîãðàììà íå ñïðàøèâàåò î çàìåíå ñóùåñòâ. ôàéëà.</li>
  62. </ul>
  63.  
  64. <h2>Î ðàáîòå ïðîãðàììû</h2>
  65. <p>Ðàçäåë äëÿ ïðîãðàììèñòîâ (è èíòåðåñóþùèõñÿ ëþäåé), â êîòîðîì ðàñêàçàíû
  66.   íåêîòîðûå èäåè, íà êîòîðûõ ïîñòðîåíà äàííàÿ ïðîãðàììà.</p>
  67.  
  68. <p>Äëÿ ðàáîòû ñ òåêñòîì ïðîãðàììà èñïîëüçóåò ñòðóêòóðû:</p>
  69. <pre>struct symbol
  70.   c db ?        ;  +0 ñèìâîë
  71.   col db ?      ;  +1 öâåò
  72.   perv dd ? ;  +2
  73.   next dd ? ;  +6 óêàçàòåëè
  74.   tc dd ?       ; +10 âðåì. ñîçäàíèÿ
  75.   td dd ?       ; +14 âðåì. óäàëåíèÿ
  76. ends</pre>
  77. <p>Êàæäàÿ èç òàêèõ ñòðóêòóð ñîõðàíÿåò îäèí ñèìâîë â ïåðåìåííîé 'c'. Ïåðåìåííûå
  78.   'perv' è 'next' õðàíÿò èíäåêñû ïåðâîãî è ñëåäóþùåãî ñèìâîëîâ. Áëàãîäàðÿ ÷åìó
  79.   òåêñò ñîçäàåòñÿ â âèäå öåïî÷êè ñèìâîëîâ (äâóíàïðàâëåííûé ñïèñîê).</p>
  80. <p><b>'tc'</b> - âðåìÿ ñîçäàíèÿ ñèìâîëà, ïðè îòìåíå äåéñòâèÿ òåêñòîâûé ðåäàêòîð "çíàåò"
  81.   êàêèå ñèìâîëû îòîáðàæàòü, à êàêèå íåò (õîòÿ âñå ñèìâîëû "âèñÿò" â ïàìÿòè).</p>
  82. <p><b>'td'</b> - âðåìÿ óäàëåíèÿ ñèìâîëà, çàïîëíÿåòñÿ ïðè óäàëåíèè, ïðè îòìåíå äåéñòâèÿ
  83.   óäàëåíèÿ ñèìâîëîâ, òåêñò ìîæåò áûòü âîññòàíîâëåí.</p>
  84. <p><b>'col'</b> - èñïîëüçóåòñÿ äëÿ öâåòîâîé ðàçìåòêè.</p>
  85.  
  86. <h1><a name="funct">Ôóíêöèè</a></h1>
  87. <p>Ôóíêöèè íà ýêñïîðò:</p>
  88.  
  89. <h4><a name="fun_but_copy">ted_but_copy</a></h4>
  90. <p>Ôóíêöèÿ êîòîðàÿ áóäåò âûçûâàòüñÿ ïðè íàæàòèè íà êíîïêó êîïèðîâàíèÿ â áóôåð èëè íà <b>Ctrl+C</b>. Òåêñò êîïèðóåòñÿ â áóôåð <b>ted_buffer</b>, ìàêñèìàëüíûé ðàçìåð áóôåðà óêàçûâàåòñÿ â <b>ted_buffer_size</b>.</p>
  91. <p>Ïðèìåð èñïîëüçîâàíèÿ:</p>
  92. <pre>stdcall [ted_but_copy], tedit0</pre>
  93.  
  94. <h4><a name="fun_but_cut">ted_but_cut</a></h4>
  95. <p>Ôóíêöèÿ âûðåçàåò âûäåëåííûé òåêñò è êîïèðóåò åãî â áóôåð.</p>
  96. <p>Ïðèìåð èñïîëüçîâàíèÿ:</p>
  97. <pre>stdcall [ted_but_cut], tedit0</pre>
  98.  
  99. <h4><a name="fun_but_find_next">ted_but_find_next</a></h4>
  100. <p>Ôóíêöèÿ äëÿ ïîèñêà òåêñòà. Èùåò òåêñò èç áóôåðà <b>ted_buffer_find</b>, ïðè íàõîæäåíèè ïåðåìåùàåò êóðñîð ê íàéäåíîìó òåêñòó è âûäåëÿåò åãî.</p>
  101. <p>Ïðèìåð èñïîëüçîâàíèÿ:</p>
  102. <pre>stdcall [ted_but_find_next], tedit0</pre>
  103.  
  104. <h4><a name="fun_but_paste">ted_but_paste</a></h4><p></p>
  105. <p>Ôóíêöèÿ âñòàâëÿåò òåêñò èç áóôåðà <b>ted_buffer</b>.</p>
  106. <p>Ïðèìåð èñïîëüçîâàíèÿ:</p>
  107. <pre>stdcall [ted_but_paste], tedit0</pre>
  108.  
  109. <h4><a name="fun_but_redo">ted_but_redo</a></h4>
  110. <p>Ïîâòîðÿåò îòìåíåííûå äåéñòâèÿ ïî ðåäàêòèðîâàíèþ òåêñòà.</p>
  111. <p>Ïðèìåð èñïîëüçîâàíèÿ:</p>
  112. <pre>stdcall [ted_but_redo], tedit0</pre>
  113.  
  114. <h4><a name="fun_but_reverse">ted_but_reverse</a></h4>
  115. <p>Ìåíÿåò ïîðÿäîê ñëåäîâàíèÿ ñèìâîëîâ â âûäåëåííîì òåêñòå.</p>
  116. <p>Ïðèìåð èñïîëüçîâàíèÿ:</p>
  117. <pre>stdcall [ted_but_reverse], tedit0</pre>
  118.  
  119. <h4><a name="fun_but_save_file">ted_but_save_file</a></h4>
  120. <p>Ôóíêöèÿ äëÿ ñîõðàíåíèÿ ôàéëà. Ïðèíèìàåò 3 ïàðàìåòðà:</p>
  121. <p>1) ñòðóêòóðà tedit,</p>
  122. <p>2) ñòðóêòóðà äëÿ ðàáîòû 70-é ôóíêöèè (äî âûçîâà ôóíêöèè çàïîëíåíèÿ íå òðåáóåò),</p>
  123. <p>3) ñòðîêà ñ ïóòåì è èìåíåì ôàéëà.</p>
  124. <p>Ïðèìåð èñïîëüçîâàíèÿ:</p>
  125. <pre>stdcall [ted_but_save_file], tedit0,run_file_70,[edit1.text]</pre>
  126.  
  127. <h4><a name="fun_but_select_word">ted_but_select_word</a></h4>
  128. <p>Ôóíêöèÿ äëÿ âûäåëåíèÿ êëþ÷åâîãî ñëîâà ïîä êóðñîðîì. Åñëè êëþ÷åâûå ñëîâà íå èñïîëüçóþòñÿ, òîãäà áóäåò âûäåëåí âåñü òåêñò.</p>
  129. <p>Ïðèìåð èñïîëüçîâàíèÿ:</p>
  130. <pre>stdcall [ted_but_select_word], tedit0</pre>
  131.  
  132. <h4><a name="fun_but_sumb_lover">ted_but_sumb_lover</a></h4>
  133. <p>Ïåðåâîäèò âûäåëåííûå ñèìâîëû ê íèæíåìó ðåãèñòðó.</p>
  134. <p>Ïðèìåð èñïîëüçîâàíèÿ:</p>
  135. <pre>stdcall [ted_but_sumb_lover], tedit0</pre>
  136.  
  137. <h4><a name="fun_but_sumb_upper">ted_but_sumb_upper</a></h4>
  138. <p>Ïåðåâîäèò âûäåëåííûå ñèìâîëû ê âåðõíåìó ðåãèñòðó.</p>
  139. <p>Ïðèìåð èñïîëüçîâàíèÿ:</p>
  140. <pre>stdcall [ted_but_sumb_upper], tedit0</pre>
  141.  
  142. <h4><a name="fun_but_undo">ted_but_undo</a></h4>
  143. <p>Îòìåíÿåò äåéñòâèÿ ïî ðåäàêòèðîâàíèþ òåêñòà. Äåéñòâèÿ ôóíêöèè <b>ted_but_reverse</b> íå îòìåíÿþòñÿ.</p>
  144. <p>Ïðèìåð èñïîëüçîâàíèÿ:</p>
  145. <pre>stdcall [ted_but_undo], tedit0</pre>
  146.  
  147. <h4><a name="fun_can_save">ted_can_save</a></h4>
  148. <p>Ôóíêöèÿ êîòîðàÿ ïðîâåðÿåò áûëè ëè íå ñîõðàíåííûå èçìåíåíèÿ â òåêñòå. Ðåçóëüòàò âîçâðàùàåòñÿ â ðåãèñòð <b>al</b>, åñëè èçìåíåíèÿ áûëè òî âîçâðàùàåò 1 èíà÷å 0.</p>
  149. <p>Ïðèìåð èñïîëüçîâàíèÿ:</p>
  150. <pre>push eax
  151.         stdcall [ted_can_save], tedit0
  152.         cmp al,1
  153. .........
  154. pop eax</pre>
  155.  
  156. <h4><a name="fun_clear">ted_clear</a></h4>
  157. <p>Î÷èñòêà òåêñòà â îêíå ðåäàêòîðà. Ïðèíèìàåò 2 ïàðàìåòðà:</p>
  158. <p>1) ñòðóêòóðà tedit,</p>
  159. <p>2) ïàðàìåòð îïðåäåëÿåò áóäåò ëè î÷èñòêà ïàìÿòè ïîëíîé.</p>
  160. <p>Åñëè 2-é ïàðàìåòð ðàâåí 1, òî î÷èñòêà áóäåò ïîëíîé, ïðè 0 íåò. Ïîëüçîâàòåëþ íóæíî âûçûâàòü ôóíêöèþ ñ ïàðàìåòðîì 1, ïàðàìåòð 0 äëÿ âíóòðåííåãî èñïîëüçîâàíèÿ.</p>
  161. <p>Ïðèìåð èñïîëüçîâàíèÿ:</p>
  162. <pre>stdcall [ted_clear], tedit0,1</pre>
  163.  
  164. <h4><a name="fun_delete">ted_delete</a></h4>
  165. <p>Äåñòðóêòîð ýëåìåíòà, îñâîáîæäàåò ïàìÿòü çàíÿòóþ ýëåìåíòîì.</p>
  166. <p>Ïðèìåð èñïîëüçîâàíèÿ:</p>
  167. <pre>stdcall [ted_delete], tedit0</pre>
  168.  
  169. <h4><a name="fun_draw">ted_draw</a></h4>
  170. <p>Ïåðåðèñîâêà âñåãî îêíà ðåäàêòîðà, âêëþ÷àÿ äî÷åðíèå ñêðîëëèíãè.</p>
  171. <p>Ïðèìåð èñïîëüçîâàíèÿ:</p>
  172. <pre>stdcall [ted_draw], tedit0</pre>
  173.  
  174. <h4><a name="fun_init">ted_init</a></h4>
  175. <p>Êîíñòðóêòîð ýëåìåíòà, âûäåëÿåò ïàìÿòü íåîáõîäèìóþ äëÿ ðàáîòû òåêñòîâîãî ðåäàêòîðà.</p>
  176. <p>Ïðèìåð èñïîëüçîâàíèÿ:</p>
  177. <pre>stdcall [ted_init], tedit0</pre>
  178.  
  179. <h4><a name="fun_init_scroll_bars">ted_init_scroll_bars</a></h4>
  180. <p>Óñòàíàâëèâàåò öâåò ñêðîëëèíãîâ è íàñòðàèâàåò èõ ðàçìåðû â çàâèñèìîñòè îò ðàçìåðîâ îêíà. Ìîæíî âûçûâàòü ýòó ôóíêöèþ ïðè èçìåíåíèè ðàçìåðîâ îêíà â ïîëüçîâàòåëüñêîé ïðîãðàììå. Ïðèíèìàåò 2 ïàðàìåòðà:</p>
  181. <p>1) ñòðóêòóðà tedit,</p>
  182. <p>2) îïöèè, óêàçûâàþò êàêèå íóæíî èçìåíèòü ïàðàìåòðû:</p>
  183. <ul>
  184. <li>1 - èçìåíèòü öâåòà ñêðîëëèíãîâ</li>
  185. <li>2 - èçìåíèëñÿ ðàçìåð îêíà</li>
  186. <li>4 - èçìåíèëñÿ ðàçìåð äîêóìåíòà</li>
  187. </ul>
  188. <p>Ïàðàìåòðû ìîæíî êîìáèíèðîâàòü ÷åðåç <i>ëîãè÷åñêîå èëè</i>.</p>
  189. <p>Ïðèìåð èñïîëüçîâàíèÿ:</p>
  190. <pre>stdcall [ted_init_scroll_bars], tedit0,2</pre>
  191.  
  192. <h4><a name="fun_init_syntax_file">ted_init_syntax_file</a></h4>
  193. <p>Ôóíêöèÿ äëÿ çàãðóçêè öâåòîâ èíòåðôåéñà è êëþ÷åâûõ ñëîâ èç ôàéëà ñèíòàêñèñà. Ïðèíèìàåò 3 ïàðàìåòðà:</p>
  194. <p>1) ñòðóêòóðà tedit,</p>
  195. <p>2) ñòðóêòóðà äëÿ ðàáîòû 70-é ôóíêöèè (äî âûçîâà ôóíêöèè çàïîëíåíèÿ íå òðåáóåò),</p>
  196. <p>3) ñòðîêà ñ ïóòåì è èìåíåì ôàéëà ñèíòàêñèñà.</p>
  197. <p>Ïðèìåð èñïîëüçîâàíèÿ:</p>
  198. <pre>stdcall [ted_init_syntax_file], tedit0,run_file_70,file_name</pre>
  199.  
  200. <h4><a name="fun_is_select">ted_is_select</a></h4>
  201. <p>Îïðåäåëÿåò åñòü â îêíå ðåäàêòîðà âûäåëåííûé òåêñò. Åñëè åñòü â ðåãèñòð <b>al</b> çàïèñûâàåòñÿ 1 èíà÷å 0. Ôóíêöèÿ íåîáõîäèìà äëÿ ñîçäàíèÿ ïàíåëåé èíñòðåìåíòîâ, â êîòîðûõ â çàâèñèìîñòè îò âûäåëåíèÿ áóäóò äîñòóïíû èëè çàáëîêèðîâàíû îïðåäåëåííûå êíîïêè (äåéñòâèÿ). Íàïðèìåð êíîïêó äëÿ êîïèðîâàíèÿ â áóôåð ìîæíî çàáëîêèðîâàòü åñëè íåò âûáðàííîãî òåêñòà.</p>
  202. <p>Ïðèìåð èñïîëüçîâàíèÿ:</p>
  203. <pre>push eax edi
  204.         mov edi,tedit0
  205.         call [ted_is_select]
  206.         cmp al,0
  207. .........
  208. pop edi eax</pre>
  209.  
  210. <h4><a name="fun_key">ted_key</a></h4>
  211. <p>Ôóíêöèÿ âûçûâàåìàÿ äëÿ ðåàêöèè íà êëàâèàòóðó. Â ðåãèñòðå <b>eax</b> äîëæåí áûòü êîä íàæàòîé êëàâèøè. Ïðèíèìàåò 3 ïàðàìåòðà:</p>
  212. <p>1) ñòðóêòóðà tedit,</p>
  213. <p>2) òàáëèöà äëÿ êîíâåðòàöèè scan êîäîâ â ascii,</p>
  214. <p>3) óïðàâëÿþùèå ñèìâîëû.</p>
  215. <p>Ïðèìåð èñïîëüçîâàíèÿ:</p>
  216. <pre>mcall 66,3 ;66.3 ïîëó÷èòü ñîñòîÿíèå óïðàâëÿþùèõ êëàâèø
  217. xor esi,esi
  218. mov ecx,1
  219. test al,0x03 ;[Shift]
  220. jz @f
  221.         mov cl,2
  222.         or esi,KM_SHIFT
  223. @@:
  224. test al,0x0c ;[Ctrl]
  225. jz @f
  226.         or esi,KM_CTRL
  227. @@:
  228. test al,0x30 ;[Alt]
  229. jz @f
  230. mov cl,3
  231.         or esi,KM_ALT
  232. @@:
  233. test al,0x80 ;[NumLock]
  234. jz @f
  235.         or esi,KM_NUMLOCK
  236. @@:
  237.  
  238. mcall 26,2,,conv_tabl ;26.2 ïîëó÷èòü ðàñêëàäêó êëàâèàòóðû
  239. mcall 2 ;ïîëó÷àåì êîä íàæàòîé êëàâèøè
  240. stdcall [ted_key], tedit0, conv_tabl,esi</pre>
  241.  
  242. <h4><a name="fun_mouse">ted_mouse</a></h4>
  243. <p>Ôóíêöèÿ íà ïåðåìåùåíèå èëè íàæàòèå ìûøè.</p>
  244. <p>Ïðèìåð èñïîëüçîâàíèÿ:</p>
  245. <pre>stdcall [ted_mouse], tedit0</pre>
  246.  
  247. <h4><a name="fun_open_file">ted_open_file</a></h4>
  248. <p>Ôóíêöèÿ äëÿ îòêðûòèÿ ôàéëà. Ïðèíèìàåò 3 ïàðàìåòðà:</p>
  249. <p>1) ñòðóêòóðà tedit,</p>
  250. <p>2) ñòðóêòóðà äëÿ ðàáîòû 70-é ôóíêöèè (äî âûçîâà ôóíêöèè çàïîëíåíèÿ íå òðåáóåò),</p>
  251. <p>3) ñòðîêà ñ ïóòåì è èìåíåì ôàéëà.</p>
  252. <p>Âîçâðàùàåò 2 ïàðàìåòðà:</p>
  253. <p>1) eax = êîä îøèáêè</p>
  254. <p>2) ebx = êîëëè÷åñòâî ïðî÷èòàííûõ áàéò</p>
  255. <p>Ïðèìåð èñïîëüçîâàíèÿ:</p>
  256. <pre>push eax ebx
  257. stdcall [ted_open_file], tedit0,run_file_70,[edit1.text]
  258. .........
  259. pop ebx eax</pre>
  260.  
  261. <h4><a name="fun_text_add">ted_text_add</a></h4>
  262. <p>Ôóíêöèÿ äëÿ äîáàâëåíèÿ òåêñòà. Ïðèíèìàåò 4 ïàðàìåòðà:</p>
  263. <p>1) ñòðóêòóðà tedit,</p>
  264. <p>2) óêàçàòåëü íà áóôåð ñ òåêñòîì,</p>
  265. <p>3) äëèíà òåêñòà,</p>
  266. <p>4) îïöèè âñòàâêè.</p>
  267. <p>Ïðèìåð èñïîëüçîâàíèÿ:</p>
  268. <pre>text_buffer db 500 dup(0)
  269. .........
  270. mov ebx,ted_opt_ed_change_time+ted_opt_ed_move_cursor
  271. stdcall [ted_text_add], tedit0,text_buffer,30,ebx</pre>
  272. <p><b>ted_opt_ed_change_time</b> - ôèêñèðîâàòü èçìåíåíèÿ äîêóìåíòà, ÷òî-áû èõ ìîæíî áûëî îòìåíèòü. Íàïðèìåð åñëè íóæíî ñäåëàòü íåñêîëüêî èçìåíåíèé òåêñòà, êîòîðûå áóäóò îòìåíÿòüñÿ çà îäèí ðàç, òî 1-å èçìåíåíèå èäåò ñ ýòîé êîíñòàíòîé à îñòàëüíûå íåò.</p>
  273. <p><b>ted_opt_ed_move_cursor</b> - êîíñòàíòà êîòîðàÿ îïðåäåëÿåò ñäâèã êóðñîðà ïîñëå äîáàâëåíèÿ òåêñòà.</p>
  274.  
  275. <h4><a name="fun_text_colored">ted_text_colored</a></h4>
  276. <p>Ôóíêöèÿ äëÿ ðàçìåòêè òåêñòà öâåòîì. Îáû÷íî âûçûâàåòñÿ âíóòðè ñàìîé áèáëèîòåêè, ïðè èçìåíåíèÿõ òåêñòà.  íåêîòîðûõ ñëó÷àÿõ ìîæåò ïîíàäîáèòüñÿ âûçâàòü ïðèíóäèòåëüíî èç âíåøíåé ïðîãðàììû.</p>
  277. <p>Ïðèìåð èñïîëüçîâàíèÿ:</p>
  278. <pre>push edi
  279.         mov edi,tedit0
  280.         call [ted_text_colored]
  281. pop edi</pre>
  282.  
  283. <p>Âíóòðåííèå ôóíêöèè:</p>
  284. <p><b>ted_get_text_perv_pos</b> - ïåðåõîä íà ïðåäûäóùèé ñèìâîë â öåïè (÷åðåç óêàçàòåëü 'perv')</p>
  285. <p><b>ted_get_text_next_pos</b> - ïåðåõîä íà ñëåäóþùèé ñèìâîë â öåïè (÷åðåç óêàçàòåëü 'next')</p>
  286. <p><b>ted_symbol_not_vis</b> - îïðåäåëÿåò âèäèìûé ëè óêàçàííûé ñèìâîë íà ýêðàíå (â çàâèñèìîñòè
  287.       îò çíà÷åíèé 'tc' è 'td')</p>
  288. <p><b>ted_iterat_next</b> - ïåðåõîä íà ñëåäóþùèé âèäèìûé ñèìâîë â öåïè. Èñïîëüçóåò äëÿ
  289.       ðàáîòû ôóíêöèè ted_get_text_next_pos è ted_symbol_not_vis.</p>
  290. <p><b>ted_iterat_perv</b> - ïåðåõîä íà ïðåäåäóùèé âèäèìûé ñèìâîë â öåïè.</p>
  291.  
  292. <p><b>ted_iterat_next_pos_char</b> - íàéòè ñëåäóþùóþ ïîçèöèþ óêàçàííîãî ñèìâîëà (edx-ïîç. íà÷àëà
  293.       ïîèñêà, bl->êîä èñêîìîãî ñèìâîëà)</p>
  294. <p><b>ted_get_pos_by_coords</b> - áåðåò ïîçèöèþ ñèìâîëà ïî êîîðäèíàòàì (esi->êîîðä. x, çíàê;
  295.       ecx->êîîðä. y, ñòðîêà)</p>
  296. <p><b>ted_go_to_pos</b> - ïåðåñòàâëÿåò êóðñîð â óêàçàííóþ ïîçèöèþ, åñëè óêàçàííàÿ ïîçèöèÿ
  297.       íàõîäèòñÿ âíå ýêðàíà, òî òàêæå ïåðåñòàâëÿþòñÿ ñêðîëèíãè (ecx->êîîðä. x, çíàê; edx->êîîðä. y, ñòðîêà)</p>
  298.  
  299. <h1><a name="syn_file">Ôîðìàò ôàéëà ïîäñâåòêè *.syn</a></h1>
  300. <table>
  301. <tr><th>Ýëåìåíò</th><th>Ðàçìåð (áàéò)</th></tr>
  302. <tr><td>Êîëè÷åñòâî öâåòîâ òåêñòà</td>
  303.   <td><pre>4</pre></td></tr>
  304. <tr><td>Êîëè÷åñòâî ïîäñâå÷èâàåìûõ ñëîâ</td>
  305.   <td><pre>4</pre></td></tr>
  306. <tr><td>Öâåòà èíòåðôåéñà</td>
  307.   <td><pre>4*6</pre></td></tr>
  308. <tr><td>Öâåòà äëÿ òåêñòà</td>
  309.   <td><pre>4*(êîë. öâ. òåêñòà)</pre></td></tr>
  310. <tr><td>Ñòðóêòóðû ñî ñâîéñòâàìè è îïèñàíèÿìè ñëîâ</td>
  311.   <td><pre>sizeof(TexColViv)*(êîë. ñëîâ)</pre></td></tr>
  312. <tr><td>Ðàçäåëèòåëüíûé ñèìâîë, îçíà÷àþùèé íà÷àëî îïèñàíèé ñëîâ (âñåãäà ðàâåí 0)</td>
  313.   <td><pre>1 áàéò</pre></td></tr>
  314. <tr><td>Îïèñàíèÿ ñëîâ (ñòðîêè òåêñòà ñ 0-ìè â êîíöå)</td>
  315.   <td><pre>(äëèííà ñïðàâî÷íîãî òåêñòà + 1)</pre></td></tr>
  316. </table>
  317. <h4>Çàìå÷àíèÿ.</h4>
  318. <ul>
  319. <li>Âñå ñëîâà äîëæíû áûòü ðàñïîëîæåíû â ïîðÿäêå ñëåäîâàíèÿ èõ ASCII êîäîâ.
  320.   Âîçìîæíî â áóäóùèõ âåðñèÿõ ôîðìàò ôàéëîâ ïîäñâåòêè áóäåò èçìåíåí.</li>
  321. </ul>
  322.  
  323. <h1><a name="struc_tedit">Ñòðóêòóðà tedit</a></h1>
  324. <p>Ìàêðîñà äëÿ ñîçäàíèÿ ñòðóêòóðû òåêñòîâîãî ðåäàêòîðà íåò. Ïîòîìó äàííûå äëÿ íåãî çàäàþòñÿ âðó÷íóþ. Ïðèìåð ñòðóêòóðû äëÿ òåêñòîâîãî ðåäàêòîðà:</p>
  325. <pre>align 4
  326. tedit0: ;ñòðóêòóðà òåêñòîâîãî ðåäàêòîðà
  327.         .wnd BOX 195,5+20,325,260 ;+ 0
  328.         .rec BOX 30,13,7,10   ;+16
  329.         .drag_m db 0 ;+32 âûäåëåíèå îò ìûøè
  330.         .drag_k db 0 ;+33 âûäåëåíèå îò êëàâèàòóðû
  331.         .sel  TexSelect 0,0,0,0 ;+34 ñòðóêòóðà âûäåëåíèÿ
  332.         .seln TexSelect ;+50 äîïîëíèòåëüíàÿ ñòðóêòóðà âûäåëåíèÿ
  333.         .tex      dd 0 ;+66 text memory pointer
  334.         .tex_1    dd 0 ;+70 text first symbol pointer
  335.         .tex_end  dd 0 ;+74 text end memory pointer
  336.         .cur_x    dd 0 ;+78 êîîðäèíàòà x êóðñîðà
  337.         .cur_y    dd 0 ;+82 êîîðäèíàòà y êóðñîðà
  338.         .max_chars dd 5002 ;+86 ìàêñèìàëüíîå ÷èñëî ñèìâîëîâ â îäíîì äîêóìåíòå
  339.         .count_colors_text dd 1 ;+90 êîëëè÷åñòâî öâåòîâ òåêñòà
  340.         .count_key_words   dd 0 ;+94 êîëëè÷åñòâî êëþ÷åâûõ ñëîâ
  341.         .color_cursor      dd 0xff0000 ;+98 öâåò êóðñîðà
  342.         .color_wnd_capt    dd 0x0080c0 ;+102 öâåò ïîëåé âîêðóã îêíà
  343.         .color_wnd_work    dd      0x0 ;+106 öâåò ôîíà îêíà
  344.         .color_wnd_bord    dd 0xffffff ;+110 öâåò òåêñòà íà ïîëÿõ
  345.         .color_select      dd 0x0000ff ;+114 öâåò âûäåëåíèÿ
  346.         .color_cur_text    dd 0xffff00 ;+118 öâåò ñèìâîëà ïîä êóðñîðîì
  347.         .color_wnd_text    dd 0x80ffff ;+122 öâåò òåêñòà â îêíå
  348.         .syntax_file       dd 0 ;+126 óêàçàòåëü íà íà÷àëî ôàéëà ñèíòàêñèñà
  349.         .syntax_file_size  dd 500 ;+130 ìàêñèìàëüíûé ðàçìåð ôàéëà ñèíòàêñèñà
  350.         .text_colors       dd 0 ;+134 óêàçàòåëü íà ìàññèâ öâåòîâ òåêñòà
  351.         .help_text_f1      dd 0 ;+138 óêàçàòåëü íà òåêñò ñïðàâêè (ïî íàæàòèè F1)
  352.         .help_id           dd -1 ;+142 èäåíòèôèêàòîð äëÿ ñïðàâêè
  353.         .key_words_data    dd 0 ;+146 óêàçàòåëü íà ñòðóêòóðû êëþ÷åâûõ ñëîâ TexColViv
  354.         .tim_ch      dd ? ;+150 êîëè÷åñòâî èçìåíåíèé â ôàéëå
  355.         .tim_undo    dd ? ;+154 êîëè÷åñòâî îòìåíåííûõ äåéñòâèé
  356.         .tim_ls      dd ? ;+158 âðåìÿ ïîñëåäíåãî ñîõðàíåíèÿ
  357.         .tim_co      dd ? ;+162 âðåìÿ ïîñëåäíåé öâåòîâîé ðàçìåòêè
  358.         .el_focus    dd el_focus ;+166 óêàçàòåëü íà ïåðåìåííóþ ýëåìåíòà â ôîêóñå
  359.         .err_save    db 0 ;+170 îøèáêà ñîõðàíåíèÿ ôàéëà
  360.         .panel_id    db 0 ;+171 íîìåð îòêðûòîé ïàíåëè
  361.         .key_new     db 0 ;+172 ñèìâîë, êîòîðûé áóäåò äîáàâëÿòñÿ ñ êëàâèàòóðû
  362.         .symbol_new_line db 20 ;+173 ñèìâîë çàâåðøåíèÿ ñòðîêè
  363.         .scr_w       dd scrol_w1 ;+174 âåðòèêàëüíûé ñêðîëëèíã
  364.         .scr_h       dd scrol_h1 ;+178 ãîðèçîíòàëüíûé ñêðîëëèíã
  365.         .arr_key_pos dd 0 ;+182 óêàçàòåëü íà ìàññèâ ïîçèöèé êëþ÷åâûõ ñëîâ
  366.         .buffer      dd buf ;+186 óêàçàòåëü íà áóôåð êîïèðîâàíèÿ/âñòàâêè
  367.         .buffer_find dd 0 ;+190 óêàçàòåëü íà áóôåð äëÿ ïîèñêà
  368.         .cur_ins     db 1 ;+194 ðåæèì ðàáîòû êóðñîðà (îáû÷íûé èëè çàìåíà)
  369.         .mode_color  db 1 ;+195 ðåæèì âûäåëåíèÿ ñëîâ öâåòîì (0-âûêë. 1-âêë.)
  370.         .mode_invis  db 0 ;+196 ðåæèì ïîêàçà íåïå÷àòàåìûõ ñèìâîëîâ
  371.         .gp_opt      db 0 ;+197 îïöèè âîçâðàùàåìûå ôóíêöèåé ted_get_pos_by_cursor
  372.         .fun_on_key_ctrl_o dd but_ctrl_o ;+198 óêàçàòåëü íà ôóíêöèþ âûçûâàåìóþ ïðè íàæàòèè Ctrl+O (îòêðûòèå ôàéëà)
  373.         .fun_on_key_ctrl_f dd 0 ;+202 ... Ctrl+F (âûçîâà/ñêðûòèÿ ïàíåëè ïîèñêà)
  374.         .fun_on_key_ctrl_n dd but_ctrl_n ;+206 ... Ctrl+N (ñîçäàíèå íîâîãî äîêóìåíòà)
  375.         .fun_on_key_ctrl_s dd 0 ;+210 ... Ctrl+S
  376.         .buffer_size       dd BUF_SIZE ;+214 ðàçìåð áóôåðà êîïèðîâàíèÿ/âñòàâêè
  377.         .fun_find_err      dd 0 ;+218 óêàçàòåëü íà ôóíêöèþ âûçûâàåìóþ åñëè ïîèñê çàêîí÷èëñÿ íåóäà÷íî
  378.         .fun_init_synt_err dd 0 ;+222 óêàçàòåëü íà ôóíêöèþ âûçûâàåìóþ ïðè îøèáî÷íîì îòêðûòèè ôàéëà ñèíòàêñèñà
  379.         .fun_draw_panel_buttons dd 0 ;+226 óêàçàòåëü íà ôóíêöèþ ðèñîâàíèÿ ïàíåëè ñ êíîïêàìè
  380.         .fun_draw_panel_find    dd 0 ;+230 óêàçàòåëü íà ôóíêöèþ ðèñîâàíèÿ ïàíåëè ïîèñêà
  381.         .fun_draw_panel_syntax  dd 0 ;+234 óêàçàòåëü íà ôóíêöèþ ðèñîâàíèÿ ïàíåëè ñèíòàêñèñà
  382.         .fun_save_err           dd 0 ;+238 óêàçàòåëü íà ôóíêöèþ âûçûâàåìóþ åñëè ñîõðàíåíèå ôàéëà çàêîí÷èëîñü íåóäà÷íî
  383.         .increase_size dd 225 ;+242 ÷èñëî ñèìâîëîâ íà êîòîðûå áóäåò óâå÷èâàòüñÿ ïàìÿòü ïðè íåõâàòêå
  384.         .ptr_free_symb dd   ? ;+246 óêàçàòåëü íà ñâîáîäíóþ ïàìÿòü, â êîòîðóþ ìîæíî äîáàâëÿòü ñèìâîë (èñïîëüçóåòñÿ âíóòðè ýëåìåíòà äëÿ óñêîðåíèÿ âñòàâêè òåêñòà)</pre>
  385. <hr>
  386. <p>Äîêóìåíòàöèÿ îáíîâëÿëàñü ïîñëåäíèé ðàç 17.05.10.</p>
  387.  
  388. </body>
  389. </html>