Dec 202017
 
Fast Editor beta 1.0 - object oriented editor in Clipper with Classy.
File FED10.ZIP from The Programmer’s Corner in
Category Dbase Source Code
Fast Editor beta 1.0 – object oriented editor in Clipper with Classy.
File Name File Size Zip Size Zip Type
FASTEDIT.DOC 19940 5261 deflated
FE.OBJ 30199 10782 deflated
FEC.OBJ 3254 1770 deflated
READ.ME 5117 2421 deflated
SAMPLE.TXT 729 418 deflated
TESTEDIT.LNK 89 69 deflated
TESTEDIT.PRG 3663 1329 deflated
TESTEDIT.RMK 250 142 deflated
WORDPERF.LNK 89 69 deflated
WORDPERF.PRG 7675 2079 deflated
WORDPERF.RMK 214 124 deflated

Download File FED10.ZIP Here

Contents of the READ.ME file



FastEdit v1.0 BETA
November 5, 1992

TERMS & CONDITIONS

I am releasing FastEdit in a pre-production form in order
to get valuable input on its use and functionality. There
are only a few conditions attached to using this product:

You inform me of any problems you discover, and any
enhancement suggestions you may have.

Let me know if you are using it in a commercial
application. A simple EMAIL message via Compuserve
is the best way to reach me. My CIS id: [71735,141]

Complaints about the documentation are kept to
yourself!!

ABSTRACT

FastEdit is an object oriented editor library for use within
Clipper 5.01 applications. Since Clipper 5.01 is not truly
object oriented, FastEdit depends on external libraries, such
as Class(y) and o:Clip, to provide the OO extensions.

*** YOU MUST OWN CLASS(Y) TO USE THIS RELEASE OF FASTEDIT!! ***

FastEdit is a complete replacement for the Clipper MEMOEDIT()
function. While MEMOEDIT() gives a small amount of control
over your memo editing capabilities, FastEdit gives you total
control.

FEATURES

Here are a few of the things you can do under FastEdit which are impossible
using MEMOEDIT():

Block operations. Move, copy, delete, & save are just a few of
the operations you can do on blocks.

Embedded printer codes. Use these to support operations such as
bold and underline. These embedded codes may be displayed as part
of the text being editing (ie [BOLD] shown where bold is turned on)
or cause a color change of the specified text (ie text to be made
bold is displayed hilited).

Rectangular Gets. Using this feature you can edit long character
strings in a rectangular area. For example, suppose you have a
character field of length 150 characters and you want to edit this
across 3 lines of 50-characters each. To do this in Clipper, you
would have to break the line into 3 different strings and do a GET
on each one. With FastEdit, just define the rectangular area and
the user will get full editing capabilities--and you don't have
to worry about the resulting string being longer than 150 characters.

Enhanced cursor control. Including word operations, horizontal
and vertical panning, and completely configurable key control.
Emulating your favorite word-processor within Clipper is not out
of the question.

Multiple edit windows. Display multiple edit windows on the screen
at the same time, and switch between them at the press of a key.
Or, incorporate FastEdit directly into your GET system.

Search & Replace. (Not completely implemented yet)

A completely configurable editor environment. The possibilities
are too numerous to mention!


DEMONSTRATIONS

Documentation is found in FASTEDIT.DOC. It is very
sparse. When you link your applications, make sure you
link in these files:

FE.OBJ
FEC.OBJ
CLASSY.LIB <-- you must own the Class(y) library

If you have used TBrowse, then FastEdit should not pose much
of a challenge. Your best bet is to look at TESTEDIT.PRG,
which demonstrates several features of FastEdit (but by no
means all the features!). You can compile this demo by
typing: RMAKE TESTEDIT

Or, look at WORDPERF.PRG. This is the start of basic
WordPerfect key emulation. It is not meant to be complete,
just an example! To compile: RMAKE WORDPERF

You should probably follow these steps when creating an edit
screen:

1) Create browse object. For example:

EditObj := FastEdit():New(5, 1, 10, 20, "W+/B", cText)

This creates an editor object, FastEdit, with the coordinates
(5,1,10,20), color bright white on blue, and editing the
text contained in the variable cText.

2) Set appropriate instance variables:

EditObj:insert := .T. // default to insert mode
EditObj:readOnly := .T. // set to read-only
EditObj:realTab := .F. // pad tabs with spaces

These are just a FEW of the many instance variables available.
See the FASTEDIT.DOC file for a complete listing.

3) Stabilize the edit screen:

EditObj:stabilize()

4) Enter an event loop:

nKey := 0
DO WHILE nKey != K_ESC
// stabilize window -- NOT incremental!
EditObj:stabilize()

SETCURSOR(IF(EditObj[np]:insert, SC_INSERT, SC_NORMAL))

// wait for keystroke
nKey := INKEY(0)

DO CASE
CASE nKey == 397// ctrl-up
EditObj:panUp()
CASE nKey == 401// ctrl-down
EditObj:panDown()
CASE nKey == 127
EditObj:delWord()
CASE nKey == K_ALT_M
// toggle block mode
IF EditObj:lBlockOn
EditObj:blockOff()
ELSE
EditObj:blockOn()
ENDIF
CASE nKey == K_ESC
// Exit key: do nothing
OTHERWISE
EditObj:defaultKey(nKey)
ENDCASE

ENDDO

5) That's it! Hope this works out for you. A few developers
are already using this in their applications, so it should be
FAIRLY solid. Let us know!




 December 20, 2017  Add comments

Leave a Reply