Распечатать страницу

Интеактивное редактирование MEMO-поля в VFP

« Назад

При просмотре таблицы, отображаемой в Browse- или Edit-окне или в сетке, данные в поля типа Memo или Memo (binary) можно просмотреть и изменить в окне (рис. 3.4), открываемом, например, после двойного удара мышью по memo-полю или нажатия на Ctrl+PgUp.

58.1.-Ввод-данных-в-memo-поле

Рис. 3.4. Ввод данных в memo-поле

После нажатия на Ctrl+W окно ввода данных будет закрыто, а данные записаны.

При позиционировании указателя мыши на memo-поле в browse-окне или сетке появляется подсказка, отображающая содержимое этого поля. Временем существования подсказки можно управлять.

Системная переменная

_TOOLTIPTIMEOUT = [nValue]

задает время отображения подсказки.

Параметр:

nValue – принимает следующие значения:

–1 – (по умолчанию) время отображения подсказки определяется установкой Windows;

0 – подсказка выводится, пока перемещается указатель мыши;

> 0 – число миллисекунд отображения подсказки.

Установка _TOOLTIPTIMEOUT распространяется только на элементы управления, имеющие свойство ToolTipText и поля в browse-окнах и сетке, размер которых меньше их содержимого.

Программно данные memo-поля обновляются теми же средствами, что данные других полей (команды REPLACE, GATHER и др.)

Данные, введенные в memo-поле, сохраняются в отдельном файле, имеющем то же имя, что и таблица, которой поле принадлежит, и расширение FPT.

Значение memo-поля можно присвоить переменной, которая после присваивания будет иметь тип Character

varMemo = Test.MemoB    && Таблица Test открыта

? varMemo                          && Выводим все memo-поле

? VarType(varMemo)         && Напечатает: C

Команда

APPEND MEMO MemoFieldName FROM FileName [OVERWRITE]
[AS nCodePage]

копирует содержимое текстового файла в memo-поле MemoFieldName текущей записи.

Опции и параметры (см. также табл. 1.6):

FROM FileName – имя текстового файла, содержимое которого копируется в memo-поле. Указывается в расширением. Может содержать путь.

OVERWRITE – обеспечивает перезаписывание memo-поля данными текстового файла.

При копировании, если не задана опция AS, данные конвертируются в кодовую страницу таблицы. Если таблица не имеет кодовой страницы, то данные конвертируются в текущую кодовую страницу VFP.

Пример:

append memo Test.MemoB from d:\a.txt

append memo Test.MemoField from d:\a.txt overwrite as 1251

Команда

MODIFY MEMO MemoField1 [, MemoField2 ...] [NOEDIT] [NOMENU]
                   [NOWAIT] [RANGE nStartCharacter, nEndCharacter]
                   [[WINDOW WindowName1] [IN [WINDOW] WindowName2
                  
| IN SCREEN]] [SAME] [SAVE]

открывает окно редактирования memo-поля текущей записи.

Параметры (описание опций см. в табл. 1.6):

MemoField1 [, MemoField2 ...] – имена открываемых memo-полей. Если адресуется memo-поле таблицы, открытой в нетекущей области, то имя поля предваряется псевдонимом таблицы и точкой.

Замечание. Если таблица открыта в режиме разделяемого доступа, то после открытия memo-окна текущая запись блокируется.

Пример 1:

&& Таблица Test должна быть открыта

select Test

go top

modify memo MemoB range 1, 11  && Выделяем первые 10 символов

Пример 2:

&& Открываем 2 memo-окна

modify memo MemoB, MemoField nowait

Команда

CLOSE MEMO MemoFieldName1 [, MemoFieldName2 ...] | ALL

закрывает одно или более окон, открытых для редактирования memo-полей. Если задана опция ALL, то закрываются все открытые memo-окна. Все произведенные изменения memo-полей сохраняются.

Пример:

&& Закрываем окна полей MemoField и MemoB

close memo MemoB, MemoField

&& Закрываем все memo-окна

close memo all

Команда

COPY MEMO MemoFieldName TO FileName [ADDITIVE] [AS nCodePage]

копирует содержимое memo-поля MemoFieldName текущей записи в текстовый файл FileName.

Описание опций см. в табл. 1.6.

Пример:

&& Замещаем содержимое файла d:\a.txt на содержимое memo-поля

copy memo memoB to d:\a.txt

&& Добавляем в файл содержимое memo-поля, указывая вдобавок номер кодовой страницы

copy memo memoB to d:\a.txt additive as 1251

Команда

SET MEMOWIDTH TO nColumns

задает ширину отображения memo-полей и символьных данных.

Параметр:

nColumns – задаваемая ширина. Целое число из диапазона 8 – 8192. Значение по умолчанию – 50. Если SET COMPATIBLE установлен в ON или DB4, то значение по умолчанию – 80. Если nColumns превысит 8192, то ширина будет принята равной 8192.

Команда SET MEMOWIDTH устанавливает длину строки вывода, направляемого в окно VFP или в файл такими командами, как ? | ??, DISPLAY или LIST. Команда действует на memo-поля, а также на строки, длина которых больше 254 символов. Также она влияет на результаты, возвращаемые функциями ATCLINE( ), ATLINE( ), MEMLINE( ) и MLINE( ).

Установка SET MEMOWIDTH сохраняется с текущей сессией данных.

Системная переменная

_MLINE = nNumberOfCharacters

содержит отступ от начала memo-поля, используемый функцией MLINE( ).

Параметр:

nNumberOfCharacters – величина устанавливаемого отступа.