Элемент text_editor позволяет работать с текстовыми файлами, содержит много функция для редактирования текста.
Внешний вид программы, с элементом text_editor.
Раздел для программистов (и интересующихся людей), в котором расказаны некоторые идеи, на которых построена данная программа.
Для работы с текстом программа использует структуры:
struct symbol c db ? ; +0 символ col db ? ; +1 цвет perv dd ? ; +2 next dd ? ; +6 указатели tc dd ? ; +10 врем. создания td dd ? ; +14 врем. удаления ends
Каждая из таких структур сохраняет один символ в переменной 'c'. Переменные 'perv' и 'next' хранят индексы первого и следующего символов. Благодаря чему текст создается в виде цепочки символов (двунаправленный список).
'tc' - время создания символа, при отмене действия текстовый редактор "знает" какие символы отображать, а какие нет (хотя все символы "висят" в памяти).
'td' - время удаления символа, заполняется при удалении, при отмене действия удаления символов, текст может быть восстановлен.
'col' - используется для цветовой разметки.
Функции на экспорт:
Функция которая будет вызываться при нажатии на кнопку копирования в буфер или на Ctrl+C.
Пример использования:
stdcall [ted_but_copy], tedit0
Внутренние функции:
ted_get_text_perv_pos - переход на предыдущий символ в цепи (через указатель 'perv')
ted_get_text_next_pos - переход на следующий символ в цепи (через указатель 'next')
ted_symbol_not_vis - определяет видимый ли указанный символ на экране (в зависимости от значений 'tc' и 'td')
ted_iterat_next - переход на следующий видимый символ в цепи. Использует для работы функции ted_get_text_next_pos и ted_symbol_not_vis.
ted_iterat_perv - переход на предедущий видимый символ в цепи.
ted_iterat_next_pos_char - найти следующую позицию указанного символа (edx-поз. начала поиска, bl->код искомого символа)
ted_get_pos_by_coords - берет позицию символа по координатам (esi->коорд. x, знак; ecx->коорд. y, строка)
ted_go_to_pos - переставляет курсор в указанную позицию, если указанная позиция находится вне экрана, то также переставляются скролинги (ecx->коорд. x, знак; edx->коорд. y, строка)
Элемент | Размер (байт) |
---|---|
Количество цветов текста | 4 |
Количество подсвечиваемых слов | 4 |
Цвета интерфейса | 4*6 |
Цвета для текста | 4*(кол. цв. текста) |
Структуры со свойствами и описаниями слов | sizeof(TexColViv)*(кол. слов) |
Разделительный символ, означающий начало описаний слов (всегда равен 0) | 1 байт |
Описания слов (строки текста с 0-ми в конце) | (длинна справочного текста + 1) |
Документация обновлялась последний раз 29.04.10.