Редактор мемо-поля |
Редактор мемо-поля служит для редактирования и просмотра записей переменной длины.
При открытии окна редактора посылается событие cmEditorOpening, при закрытии cmEditorClosing. Хендл редактируемого мемо-поля можно получить используя функцию Target.
<редактор-мемо-поля> = text [ memoID=<идентификатор> ] <поле-таблицы-типа-мемо> [ <текст-для-лепестка-вкладки> ] [ <атрибуты-мемо-поля> ] ; [ <координаты> ; ]
Конструкция memoID = <идентификатор> служит для задания мемо-полю имени, по которому к нему можно обращаться как к панели. Например, при вызове функции SetFormat.
<поле-таблицы-типа-мемо> - идентификатор поля таблицы, отображаемого в редакторе мемо-поля.
<текст-для-лепестка-вкладки> - текст для формирования надписей на лепестках закладок в панели с вкладками (см. "Панель с вкладками. ").
<атрибуты-мемо-поля> = <атрибуты-поля> [userSc = <статус-контекст> ]
<атрибуты-поля> - атрибуты, общие для всех полей, с учетом их уместности для мемо-полей. См. "Атрибуты поля. ".
Конструкция userSc = <статус-контекст> перекрывает строку статуса встроенного редактора мемо-поля указанным статус-контекстом. Доступно начиная с Атлантис 5.1.27.
Примеры:
1. Редактор мемо-поля для таблицы MemoTable:
text MemoTable.memoFld; show at(,10);
2. Редактор мемо-поля DepDesc таблицы Deps:
text MemoID = memoTest Deps.DepDesc 'Описание отдела' : noProtect, userSc=scTest;
MEMO-поле является набором байт, содержащим информацию, тип которой определяется только при просмотре этого поля. В MEMO-поле могут храниться текстовые файлы, графические изображения и любой другой тип информации. Для всей типов мемо-поля, кроме текстового, существует настройка на внешнюю программу редактирования и просмотра, вызываемую по нажатию любой клавиши.
Соглашения:
Для таблицы можно описать только одно MEMO-поле.
При создании таблицы полная длина записи принимается равной фиксированной длине записи, то есть начальная длина MEMO-поля равна нулю.
В непустом MEMO-поле первые три байта являются сигнатурой VIEWER'а (например, TXT, PCX, ...), по которой определяется программа-редактор MEMO-поля.
В описании таблицы в файле-описании словаря MEMO-поле задается полем типа lVar. Например:
comment : lVar
Для работы с MEMO-полем записи используется объект TMemoStream - потомок TBufStream с перекрытыми методами Read и Write.
При формировании отчета MEMO-поле выводится в текст только тогда, когда у него установлен атрибут, указывающий, что содержимое MEMO-поля является текстовой информацией. Функция IsMemoText возвращает true, если содержимое memo-поля текущей записи является текстовой информацией, иначе функция возвращает false.
В интерфейсе MEMO-поле отображается следующим образом:
Если сигнатура MEMO-поля TXT, то в интерфейсе отображаются начальные байты MEMO-поля в поле ввода;
Если сигнатура MEMO-поля соответствует графическому формату, то в поле ввода выдается сообщение.
При попытке редактировать поле ввода, содержащее MEMO-поле, вызывается VIEWER в соответствии с сигнатурой.
Конструкция userSc = <статус-контекст> доступна начиная с Атлантис 5.1.27.