Google

Описание класса 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