Описание класса TEXTEDIT
Атрибуты/свойства
Название атрибута |
Значение атрибута |
className | "TEXTEDIT" |
line | позиция в тексте: строка |
pos | позиция в тексте: колонка |
nTop | координата окна: левый верхний угол - строка |
nLeft | координата окна: левый верхний угол - колонка |
nBottom | координата окна: правый нижний угол - строка |
nRight | координата окна: правый нижний угол - колонка |
tabSize | шаг табуляции |
marginRight | правая граница |
marginLeft | левая граница |
lenundo | размер буфера отката |
Методы/функции
Функция textEditNew(Lrow, Lcol, Rrow, Rcol, color) - создает новый объект
класса TEXTEDIT
Lrow - граница окна редактирования: левый верхний угол - строка
Lcol - граница окна редактирования: левый верхний угол - колонка
Rrow - граница окна редактирования: правый нижний угол - строка
Rcol - граница окна редактирования: правый нижний угол - колонка
color - string, цвет редактирования "color1, color2, color3, color4"
color1 - основной цвет
color2 - цвет линии конца файла ()
color3 - цвет выделенной области (блоки - строчные/прямоугольные)
color4 - цвет выделенной области (поиск)
Все методы класса имеют последний параметр - undo(default .t./.f.)- сохранять
информацию для операции "откат". Метод writeundo - записать информацию для отката -
вызывается автоматически из всех остальных методов, если undo=.t.
Управление курсором
down() | на строку вниз |
up() | на строку вверх |
left() | на строку влево |
right() | на строку вправо |
pageUp() | на страницу вверх |
pageDown() | на страницу вниз |
top() | в начало текста |
bottom() | в конец текста |
wordLeft() | на слово влево |
wordRight() | на слово вправо |
gotoLine(line) | на заданную строку
line - номер строки
|
gotoPos(pos) | на заданную колонку
pos - номер колонки
|
home() | в начало строки |
end() | в конец строки |
Редактирование
insert(str) | вставить символ/строку символов
str - вставляемый символ/строка
|
overStrike(str) | заменить символ/строку
str - новый символ/строка
|
insertLine() | вставить новую строку |
newLine() | перейти на следующую строку |
backSpace() | удаление символа слева от курсора |
delLeft() | удаление символа слева от курсора == backSpace() |
delHome() | удаление от курсора до начала строки |
delete() | удаление символа |
delRigth() | удаление символа справа от курсора |
delEnd() | удаление от курсора до конца строки |
deleteLine() | удаление строки |
delWordRight() | удаление слова справа |
insTempl(targ) | замена подстроки по шаблону
targ - string, шаблон для замены
Шаблоны и строки замены берутся из файла $HOME/.clip/.templ
|
insMacro(targ) | макроподстановка
targ - string, шаблон для замены
Шаблоны и строки замены берутся из файла $HOME/.clip/.macro
|
draw(Draw_mode, nkey) | рисование линий, таблиц
Draw_mode - logical, .t. - одиночные линии, .f. - двойные
nkey - numeric, код клавиши (K_UP, K_DOWN, K_LEFT, K_RIGHT) - направление рисования
|
Работа с блоками
loadBlock(filename) | загрузка блока с диска
filename - string, имя файла
Возвращает .t. или .f.
|
saveBlock(filename, createbak) | записать блок на диск
filename - string, имя файла
createbak - logical, .t./.f. создавать .bak файл
Возвращает .t. или .f.
|
beginBlock(vid) | начать отметку блока
vid - logical, .t./.f. строчный/прямоугольный блок(default .t.)
|
endBlock() | закончить отметку блока |
cancelBlock() | снять отметку блока |
copyBlock() | копировать блок |
moveBlock() | переместить блок |
deleteBlock() | удалить блок |
newClipBoard(Clipboard) | записать блок в буфер с удалением содержимого буфера
Clipboard - array, буфер
|
addClipBoard(Clipboard) | добавить блок в буфер
Clipboard - array, буфер
|
moveClipBoard(Clipboard) | переместить блок в буфер
Clipboard - array, буфер
|
pasteClipBoard(Clipboard, it) | вставить блок из буфера
Clipboard - array, буфер
it - numeric, индекс в массиве Clipboard (default 1)
|
Форматирование
formatLine(Opt) | форматирование строки
Opt - map, должен содержать елементы:
- Opt:OAUTOMARGIN - logical, автоматическая установка левой границы
- Opt:OTABSIZE - numeric, шаг табуляции
- Opt:OMARGINRIGHT - numeric, правая граница
- Opt:OMARGINLEFT - numeric, левая граница
- Opt:OHYPHEN - logical, перенос в словах
|
formatPart(Opt) | форматирование абзаца
Opt - map, должен содержать елементы:
- Opt:OAUTOMARGIN - logical, автоматическая установка левой границы
- Opt:OTABSIZE - numeric, шаг табуляции
- Opt:OMARGINRIGHT - numeric, правая граница
- Opt:OMARGINLEFT - numeric, левая граница
- Opt:OHYPHEN - logical, перенос в словах
|
centerLine() | центрирование строки (длина
строки определяется атрибутом marginRight класса TEXTEDIT) |
Поиск
Find(Find) | поиск подстроки
Find - объект FINDOPTIONS
Возвращает .t.-найдено или .f.-не найдено |
findNext(Find) | найти следующее вхождение подстроки
Find - объект FINDOPTIONS
Возвращает .t.-найдено или .f.-не найдено |
findPrev(Find) | найти предыдущее вхождение подстроки
Find - объект FINDOPTIONS
Возвращает .t.-найдено или .f.-не найдено |
Replace(Find) | поиск с заменой подстроки
Find - объект FINDOPTIONS
Возвращает .t.-найдено или .f.-не найдено |
identity(symb, forward) | поиск парного символа (), [], {}, <>
symb - string, символ, для которого ищется пара. Если символ не скобка,
то ищется идентичный символ
forward - logical, направление поиска (вперед/назад)
Возвращает .t.-найдено или .f.-не найдено |
identity(symb, forward) | поиск парного символа (), [], {}, <>
symb - string, символ, для которого ищется пара. Если символ не скобка,
то ищется идентичный символ
forward - logical, направление поиска (вперед/назад)
Возвращает .t.-найдено или .f.-не найдено |
matchStruct(curword, forward) | поиск структуры по правилам Clipper'а
curword - string, слово для поиска
определяются следующие структуры:
- DO WHILE - LOOP - EXIT - ENDDO
- DO CASE - CASE - OTHERWISE - EXIT - ENDCASE
- FOR - EXIT - LOOP - NEXT
- IF - ELSE - ELSEIF - ENDIF
- BEGIN SEQUENCE - BREAK - RECOVER - END SEQUENCE
forward - logical, направление поиска (вперед/назад)
Возвращает .t.-найдено или .f.-не найдено |
Работа с файлами
loadFile(filename) | загрузка текста из файла
filename - string, имя загружаемого файла
Возвращает .t. или .f. |
saveFile(filename, createbak) | записать файл на диск
filename - string, ифя файла
createbak - logical, создавать/не создавать .bak копию файла (default .f.)
Возвращает .t. или .f. |
loadString(str) | загрузка текста из строки
str - string, строка для редактирования
Возвращает .t. или .f. |
saveString() | текст -> в строку
Возвращает текст, записанный в строку |
Прочее
refresh() | перерисовывает экран
|
---|
setNewColor(newcolor) | перерисовывает экран
newcolor - string, новая цветовая строка,
newcolor = color1[,color2,[color3,color4]]]
color1 - основной цвет
color2 - цвет линии конца файла ()
color3 - цвет выделенной области (блоки - строчные/прямоугольные)
color4 - цвет выделенной области (поиск)
curWord() | текущее слово в строке
Возвращает строку - текущее слово |
prevWord() | предыдущее слово
Возвращает строку - предыдущее слово |
nextWord() | следующее слово
Возвращает строку - следующее слово |
clear() | очистить буфер редактирования
|
---|
check_line(line) | проверка существования строки
line - numeric, строка для проверки. Если строка с номером
line не существует, то она создается.
|
writeundo(cmd, val) | запись информации для отката,
хранятся данные о предыдущем состоянии буфера редактирования, поиска, положение курсора
и прочее
cmd - numeric, команда
val - numeric/string/logical/array/NIL, запоминаемое значение
|
undo(cmd) | восстановить предыдущее состояние буфера
редактирования, поиска, положение курсора и прочее
cmd - numeric, команда
|
|
---|
Формат файла .templ
Файл .templ хранится в домашнем каталоге пользователя в директории
.clip
шаблон [Space|Tab] описание[/описание]
Символ [/] служит для деления на строки
Пример:
headf ******************************/*Function:/*Notes:/ /*** End of **********
headp ******************************/*File:/*Author:/*Date:/*Version:/*Notes:/ /*** End of **********
f For/Next
c CLEAR
* ******************************
IF If/EndIF
I If/EndIF
IE If/Else/EndIF
D DO/EndDO
DW DO WHILE/EndDO
DC DO CASE/ CASE/ OTHERWISE/EndCASE
.............
т.е. после подстановки, например, вместо шаблона DC должно
получиться что-то вроде:
DO CASE
CASE
OTHERWISE
EndCASE
а вместо шаблона headp
******************************
*File:
*Author:
*Date:
*Version:
*Notes:
*** End of **********
Формат файла .macro
Файл .macro хранится в домашнем каталоге пользователя в директории
.clip
шаблон [Space|Tab] функция
Пример:
d DATE()
dd date_rus(date())
.............
т.е. после подстановки, например, вместо шаблона d должно
получиться что-то вроде:
11/22/2000
а вместо шаблона dd
22 Ноября 2000 г.
© Ю.Хныкин, uri@itk.ru, 2000
© Е.Корнилова, alena@itk.ru, 2000