Новости



Visual FoxPro 9 позволяет создавать ещё более производительные приложения баз данных.
Двадцатиление FoxPro! Microsoft принимает поздравления.
Visual FoxPro Toolkit for .NET - более 225 функций VFP 7.0, для языков .NET (подробнее)

fox00020.gif

В следующем примере открывается для редактирования файл, заданный параметром. Производится вставка новой строки, установка отступов в двух строках и удаление двух других строк. После вставки новой строки вызывается программа _EdSave( ). Затем, после установки отступов и удаления, трижды вызывается программа _EdUndo( ) с целью отменить все действия по редактированию; однако вставка, сделанная до вызова _EdSave( ), не может быть отменена. Затем выполняются еще две опе ации редактирования fox90001.gif вставка двух строк и удаление двух строк, fox90001.gif между которыми вызывается _EdSave( ). Наконец, вызывается программа _EdRevert( ), но и она в состоянии отменить лишь изменения, внесенные с момента послед его вызова _EdSave( ).

Код Visual FoxPro

SET LIBRARY TO EDSAVE

= EDSAVE("x")

Код C

#include <pro_ext.h>

FAR Example(ParamBlk FAR *parm)

{

#define pFILENAME ((char FAR *) _HandToPtr(parm->p[0].val.ev_handle))

WHANDLE wh;

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);

_EdSetPos(wh, _EdGetLinePos(wh, 13));

_EdInsert(wh, "Hello, world\r\n", _StrLen("Hello, world\n"));

_EdSave(wh);

_EdSelect(wh, _EdGetLinePos(wh, 14), _EdGetLinePos(wh, 16));

_EdIndent(wh, 1);

_EdSelect(wh, _EdGetLinePos(wh, 9), _EdGetLinePos(wh, 12));

_EdDelete(wh);

_Execute("WAIT WINDOW 'Press any key to undo changes.'");

_EdUndo(wh); // undo deletion

_EdUndo(wh); // undo indent

_EdUndo(wh); // attempt to undo insertion, but can't

_EdSelect(wh, _EdGetLinePos(wh, 14), _EdGetLinePos(wh, 16));

_EdIndent(wh, 1);

_EdSave(wh);

_EdSelect(wh, _EdGetLinePos(wh, 9), _EdGetLinePos(wh, 12));

_EdDelete(wh);

_EdRevert(wh); // undoes deletion

}

FoxInfo myFoxInfo[] = {

{"EDSAVE", (FPFI) Example, 1, "C"},

};

FoxTable _FoxTable = {

(FoxTable FAR *) 0, sizeof(myFoxInfo)/sizeof(FoxInfo), myFoxInfo

};



Новое на сайте

  • Обновлен портфель программиста

    Добавлены: Установка HTML Help (Создание справочной системы), Imagedit.zip - Графический редактор ( ico и bmp), Библиотека локализации HTML Help (Русский)
  • Новые примеры программ

    Установка библиотек, Игровая программа "Охота на лис", Установка библиотек "Охота на лис", plastic -"Платежки", Библиотеки (на FPD26), platan -"Платежки" (на Clipper 5.2)
  • Обновленна справка

    Подсказки, технология программирования и использование Visual FoxPro. Команды, функции, операторы, объекты, свойства, события и методы.