Parece ser fácil mas não descobrí até agora. Conseguir uma substring da variavel em edição até que consigo, mas só consigo quando ela já estava originalmente. Quando é digitado algo na 2ª linha e quero pegar uma substring dessa mesma linha me vem em branco.
Vou colocar um exemplo:
Código: Selecionar todos
#include "memoedit.ch"
VWRAP:=.T.
TEXTO:="1ª LINHA"+CHR(13)+CHR(10)+"2ª LINHA"
TEXTO:=MEMOEDIT(TEXTO,00,00,20,78,.T.,"CONTROL",120)
FUNCTION CONTROL(MODO,LINHA,COLUNA)
PUBLIC INS_MUDA,MODET
IF MODO=ME_INIT
INS_MUDA=.F.
MODET=.F.
SETCURSOR(1)
IF VWRAP=.T.
// VWRAP:= .F.
// RETURN (ME_TOGGLEWRAP)
ENDIF
ENDIF
IF MODO=0
@ 21,50 SAY " Linha: "+STRZERO(LINHA,3,0)+" " COLOR "W+/B"
@ 21,63 SAY " Coluna: "+STRZERO(COLUNA,3,0)+" " COLOR "W+/B"
QTECLA:=LASTKEY()
IF !(QTECLA=27)
IF QTECLA=7 .OR. QTECLA=8 .OR. QTECLA=9 .OR. QTECLA=13 .OR. QTECLA=127 .OR. (QTECLA>32 .AND. QTECLA<255)
MODET=.T.
ENDIF
ENDIF
ENDIF
IF INS_MUDA=.T. // Acerta o Ins
READINSERT(.T.)
INS_MUDA=.F.
ENDIF
DO CASE
CASE LASTKEY()=-2 // F3
MEMOWRIT("TEXTO.TMP",TEXTO)
TMP:=MEMOREAD("TEXTO.TMP")
NPOS:=MLCTOPOS(TMP,148,LINHA,0,,.T.)
// ALERT(STR(NPOS))
// VLIN:=MEMOLINE(TEXTO,148,NPOS,,.T.)
VLIN:=SUBSTR(TEXTO,NPOS,148)
IF CHR(13) $ VLIN
VLIN:=SUBSTR(VLIN,1,(AT(CHR(13),VLIN))-1)
ENDIF
ALERT(VLIN)
ENDCASE
RETURN 0
