[Harbour] StackOverflow in MemoEdit

Abeb abe.buch at att.net
Mon Dec 22 16:52:18 EST 2008


Try to type some text, press esc , answer no to save

--------------------------------------------------

#INCLUDE "INKEY.CH"
PROC TEST()
LOCAL MBUFFER  := ""

PRIVATE RETVAL := 0
PRIVATE ALTERED := .F.
PRIVATE INS_MODE :=  .T.


SETMODE(25,80)
@ MAXROW()-1,0 TO MAXROW()-1 ,MAXCOL() DOUB
@ MAXROW()  ,0 SAY " ®ESC¯ " 
MBUFFER  :=  MEMOEDIT( MBUFFER , 0,0,MAXROW()-2, MAXCOL() ,
.Y.,"REMARKFUNC", MAXCOL() )

? "I'M HERE"

IF RETVAL = K_CTRL_W
	? "SAVEING..."
ENDIF

RETURN
***************

FUNC REMARKFUNC (MODE, LINE, COL)
LOCAL MTEMP
LOCAL KP

DO CASE
	CASE MODE = 3
		IF  .NOT. INS_MODE
			RETVAL :=  22
		ENDIF
		@ MAXROW(), 30 SAY IF(INS_MODE, "INSERT", "      ")
		RETVAL := 0

	CASE MODE = 0
		* IDLE
		@ MAXROW(),40 SAY "LINE: " + PAD(LTRIM(STR(LINE)), 4)
		@ MAXROW(),52 SAY "COL: " + PAD(LTRIM(STR(COL)), 3)

	OTHERWISE
		* KEYSTROKE EXCEPTION
		KP = LASTKEY()

		* SAVE VALUES TO POSSIBLY RESUME EDIT
		IF MODE=2
			ALTERED   :=  .T.
		ENDIF

		DO CASE
			CASE KP = K_CTRL_W
				* ^W..IGNORE (DISABLE)
				RETVAL  := 32

			CASE KP = 301 .OR. KP = 27
				* ESC/ALT-X..EXIT
				IF .NOT. ALTERED
					RETVAL  := 27
				ELSE
					MTEMP  := ALERT("SAVE EDITING",{"YES","NO"})

					DO CASE

						CASE MTEMP = 2
							RETVAL  :=  27
						CASE MTEMP = 0
							RETVAL  := 32
						CASE MTEMP  = 1
							? "SAVEING..."
							RETVAL  := K_CTRL_W
					ENDCASE
				ENDIF

			CASE (KP = 279 .OR. KP = 22)
				* ^V/INS/ALT-I..TOGGLE INSERT MODE
				INS_MODE = .NOT. INS_MODE
				@ MAXROW(), 30 SAY IF(INS_MODE, "INSERT", "      ")
				RETVAL  := 22

		ENDCASE
ENDCASE
RETURN RETVAL

-- 
View this message in context: http://www.nabble.com/StackOverflow-in-MemoEdit-tp21135626p21135626.html
Sent from the Harbour - Dev mailing list archive at Nabble.com.



More information about the Harbour mailing list