Определяет различные установки редактора.
int _EdSetEnv(WHANDLE wh, *EDENV theEdEnv) WHANDLE wh; /* Дескриптор окна редактирования.. */ *EDENV theEdEnv; /* Установки редактора. */ |
Примечания
Описание структуры *EDENV, смотрите в теме Процедура библиотеки API _EdGetEnv( ).
Tсли вызов из сесии Command или Editor - возврвщается 1, иначе возвращается 0.
Для получения дополнительной информации о том, как создавать библиотеку API и интегрировать её в Visual FoxPro, смотрите Доступ к Visual FoxPro API.
Пример
В следующем примере открывается для редактирования файл, заданный параметром. В двух строках делается отступ, после чего _EdSetEnv( ) изменяет ширину табуляции сначала до 6 символов, а потом до 9.
Код Visual FoxPro
Copy Code | |
---|---|
SET LIBRARY TO EDSETENV = EDSETENV("x") |
Код C
Copy Code | |
---|---|
#include <pro_ext.h> FAR Example(ParamBlk FAR *parm) { #define pFILENAME ((char FAR *) _HandToPtr(parm->p[0].val.ev_handle)) WHANDLE wh; EDENV EdEnv; EDPOS edpos; if (!_SetHandSize(parm->p[0].val.ev_handle, parm->p[0].val.ev_length+1)) { _Error(182); // "Insufficient memory" } pFILENAME[parm->p[0].val.ev_length] = '\0'; _HLock(parm->p[0].val.ev_handle); wh = _EdOpenFile(pFILENAME, FO_READWRITE); _HUnLock(parm->p[0].val.ev_handle); _EdGetEnv(wh, &EdEnv); _EdSelect(wh, _EdGetLinePos(wh, 1), _EdGetLinePos(wh, 3)); _EdIndent(wh, 1); _Execute("WAIT WINDOW 'Press any key\ to change tabs to 6 characters.'"); EdEnv.tabWidth = 6; _EdSetEnv(wh, &EdEnv); _Execute("WAIT WINDOW 'Press any key \ to change tabs to 9 characters.'"); EdEnv.tabWidth = 9; _EdSetEnv(wh, &EdEnv); } FoxInfo myFoxInfo[] = { {"EDSETENV", (FPFI) Example, 1, "C"}, }; FoxTable _FoxTable = { (FoxTable FAR *) 0, sizeof(myFoxInfo)/sizeof(FoxInfo), myFoxInfo }; |
Смотрите также
Справочное руководство
Процедура библиотеки API _EdGetEnv( )Процедура библиотеки API _EdLastError( )
Прочие ресурсы
Конструкции библиотеки APIДоступ к API Visual FoxPro