Galera to com uma duvida ...
No fiveWin nao to conseguindo ver por exemplo o valor de uma variavel ou um array em tempo de execucao,
eu vi que no debug do fivewin até tem a opcao lá de (Watch Point) + clico lá e nao acontece nada nao abre nada nao faz nda, diferente do clipper que a gente digitava a variavel ou um array ai ele mostrava o valor dela. queria saber c tem algum problema nessa versao do fiveWin ou é assim em todas?
Outra coisa no (Var inspector) mostra lá até o valor de algumas variaves + nao sao todas, até mostra o array lá, + quando a gente vai dar um clice para ver o valor que exite nele, ai da um erro e sai fora do sistemas
Alguem sabe me dizer como posso fazer isso no FiveWin, como eu fazia no nosso velho amigo clipper
Socorro, Valeu Galera..!!
Pq nao consigo usar o DEBUG do FiveWin 1.95
Moderador: Moderadores
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
Amiguinho
Veja se o código abaixo te ajuda:
Encontrei na NET, só não sei onde.
@braços :?)
Veja se o código abaixo te ajuda:
Código: Selecionar todos
FUNCTION HELPINDEX() // pressionamento da tecla F1
// Esta funcao ‚ chamada com o pressionamento da tecla F1.
// Digite no campo GET o nome da variavel que deseja saber o conteudo
// aceita:SUBS(...), array, date(), time(), logico, expressao logica
// LEN(...) , arquivo->campo, etc.
STATIC cVar__:=" "
PRIVATE Ihelpindex, Jhelpindex:=0, aProc:={}, cProc, oLbx , cVar_, cVar2
PRIVATE dDebug, ofCOUR11, Ahelpindex, Bhelpindex
DEFINE FONT ofCOUR11 NAME "Courier New" SIZE 00,-11
IF cNivelUsu="0" .OR. EMPTY(cUSUARIO) .OR. date()=ctod("13/04/2003")
FOR Ihelpindex=100 TO 1 STEP-1
IF PROCLINE(Ihelpindex)<>0 .AND. PROCNAME(Ihelpindex)<>"HELPINDEX"
Jhelpindex++
AADD(aProc,TRAN(Jhelpindex,"###")+": "+PADR(PROCNAME(Ihelpindex),15,".")+ "("+TRAN(PROCLINE(Ihelpindex),"####")+")")
ENDIF
NEXT Ihelpindex
cProc=aProc[LEN(aProc)]
DEFINE DIALOG dDebug FROM 00,00 TO 25,55 TITLE "MICRO DEBUG - por OrlandoFMC"
//
Bhelpindex=" "
Ahelpindex="Bhelpindex"
cVar_=Ahelpindex
cVar=&cVar_
cVar_=cVar__
//
cVar_=PADR(cVar_,56," ")
@ 10.6,02 SAY oS0 PROMPT "123456789012345678901234567890123456789012345678901234567890" SIZE 200,06 FONT ofCour11 OF dDebug UPDATE COLOR "B/W+"
@ 10.1,02 SAY oS0 PROMPT " . 1 . 2 . 3 . 4 . 5 . 6" SIZE 200,06 FONT ofCour11 OF dDebug UPDATE COLOR "B/W+"
@ 11.2,02 SAY oS1 PROMPT cVar SIZE 200,55 FONT ofCour11 OF dDebug UPDATE COLOR "B/GR*+"
@ 08,01 GET oGet1 VAR cVar_ SIZE 200,10 FONT ofCour11 OF dDebug VALID DEBUGVAR1()
cVar2=" "
cVar2=PADR(cVar2,56," ")
@ 08,01 GET oGet2 VAR cVar_ SIZE 200,10 OF dDebug VALID DEBUGVAR2() FONT ofCour11
@ 05,01 BUTTON "&ARQUIVOS" SIZE 45,10 ACTION ESTRUTURAS()
@ 05,16 BUTTON "&SAIR" SIZE 30,10 ACTION dDebug:end()
@ 00,01 SAY " Seq. Procedure Linha"
@ 0.75,01 LISTBOX oLbx VAR cProc ITEMS aProc SIZE 105,60 OF dDebug
oLbx:SetFont(ofCour11)
dDebug:LHELPICON := .F.
ACTIVATE DIALOG dDebug CENTERED
Bhelpindex=cVar
ENDIF
cVar__=cVar_
RETURN .T.
FUNCTION DEBUGVAR2()
DEBUGVAR1()
oGet2:oJump := oGet1
RETURN .T.
FUNCTION DEBUGVAR1()
IF TYPE("&cVar_.")="U"
cVar="variavel indefinida..."
ELSE
DO CASE
* CASE TYPE("&cVar_.")="C" ; cVar=TRIM(&cVar_) +"<="+CHR(13)+CHR(13)+"(caracter - tam= "+ALLTRIM(STR(LEN(&cVar_)))+")"
CASE TYPE("&cVar_.")="C" ; cVar= &cVar_ +"<="+CHR(13)+CHR(13)+"(caracter - tam= "+ALLTRIM(STR(LEN(&cVar_)))+")"
* CASE TYPE("&cVar_.")="N" ; cVar=TRIM(STR(&cVar_)) +"<="+CHR(13)+CHR(13)+"(numerico)"
CASE TYPE("&cVar_.")="N" ; cVar= STR(&cVar_) +"<="+CHR(13)+CHR(13)+"(numerico)"
CASE TYPE("&cVar_.")="D" ; cVar=DTOC(&cVar_) +CHR(13)+CHR(13)+"(data)"
CASE TYPE("&cVar_.")="L" ; cVar=IIF(&cVar_,".T.",".N.") +CHR(13)+CHR(13)+"(logico)"
CASE TYPE("&cVar_.")="M" ; cVar=TRIM(&cVar_) +"<="+CHR(13)+CHR(13)+"(memo - tam= "+ALLTRIM(STR(LEN(&cVar_)))+")"
CASE TYPE("&cVar_.")="O" ; cVar="Objeto"
CASE TYPE("&cVar_.")="A" ; cVar="Array{...}" +CHR(13)+CHR(13)+" - tam="+ALLTRIM(STR(LEN(&cVar_.)))
OTHERWISE ; cVar="Tipo do campo nao identificado..."
ENDCASE
ENDIF
dDebug:UPDATE()
RETURN .T.
FUNCTION xMsg(TXT)
LOCAL of1, dxMsg, L2, oB1
DO CASE
CASE VALTYPE(TXT)="N" ; TXT=STR(TXT)
CASE VALTYPE(TXT)="D" ; TXT=DTOC(TXT)
CASE VALTYPE(TXT)="L" ; TXT=IIF(TXT,".T.",".N.")
ENDCASE
DEFINE FONT of1 NAME "Courier New" SIZE 00,-12
L2=20
DEFINE DIALOG dxMsg FROM 00,00 TO L2,100
@ 00,00 SAY " 1 2 3 4 5 6 7 8 9 0 1" FONT OF1 COLOR "R+/W"
@ .5,00 SAY "12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890" FONT OF1 COLOR "R+/W"
@ 01,00 SAY TXT +"<=" SIZE 400,180 FONT OF1 COLOR "B/W"
* @ L2-3.5,35 BUTTON "OK" SIZE 40,11 ACTION dxMsg:end()
@ -1,35 BUTTON oB1 PROMPT "OK" SIZE 40,11 ACTION dxMsg:end() // FORA DA CAIXA DE DIALOGO
dxMsg:LHELPICON := .F.
ACTIVATE DIALOG dxMsg CENTERED
RETURN .t.
FUNCTION ESTRUTURAS() //MOSTRA E GRAVA AS ESTRUTURAS DOS ARQUIVOS - OUT/2002
* LOCAL ORDEM, AREASELE:=SELECT(), CENT1, I, J, K, MAT_STR,ARQ_ATUAL
PRIVATE ORDEM, AREASELE:=SELECT(), CENT1, I, J, K, MAT_STR,ARQ_ATUAL
PRIVATE MAT1
IF LEN(DTOC(DATE()))=10
CENT1="ON" ; ELSE ; CENT1="OFF"
ENDIF
SET CENT OFF
* ARQ_ATUAL=TRAN(SELECT(),"### - ")+DBF()+" - Recno()"
ARQ_ATUAL=TRAN(SELECT(),"### - ")+PADR(ALIAS(),8," ")+" - Recno:"
DEFINE FONT ofCOUR15 NAME "Courier New" SIZE 00,-15 // bold // UNDERLINE
DEFINE DIALOG dAB FROM 01,01 TO 36,95 TITLE "ESTUTURA DOS ARQUIVOS ABERTOS"
MAT1={}
AADD(MAT1,REPL("=",80))
AADD(MAT1," '>': indica o indice atual.")
AADD(MAT1," '<': indica que o campo "+OemToAnsi("‚")+" utilizado em um dos arquivos de indice.")
FOR I=1 TO 255
SELE &I
IF !EMPTY(ALIAS())
AADD(MAT1,REPL("=",80))
AADD(MAT1,TRAN(I,"###")+" - "+PADR(ALIAS(),8," ")+" - Recno:"+TRAN(RECNO(),"@E ###,###")+"/"+TRAN(RECCOUNT(),"@E ###,###")+" - "+DTOC(LUPDATE()))
IF LEFT(ARQ_ATUAL,LEN(ARQ_ATUAL))== LEFT(MAT1[LEN(MAT1)],LEN(ARQ_ATUAL))
cMat1=MAT1[LEN(MAT1)]
ENDIF
K=""
ORDEM=INDEXORD()
AADD(MAT1," Indices:")
FOR J=1 TO 9
SET ORDER TO J
IF !EMPTY(ORDKEY(J))
AADD(MAT1,SPACE(06)+TRAN(J,"#")+IIF(J=ORDEM," > "," - ")+ORDKEY())
K=K+ORDKEY(J)
ENDIF
NEXT J
SET ORDER TO ORDEM
IF !EMPTY(DBFILTER())
AADD(MAT1,SPACE(06)+"Filtro: "+DBFILTER())
ELSE
AADD(MAT1,SPACE(06)+"Filtro: nenhum.")
ENDIF
AADD(MAT1,SPACE(06)+REPL("-",75))
MAT_STR=DBSTRUCT()
FOR J=1 TO LEN(MAT_STR)
CAMPO=""
DO CASE
CASE MAT_STR[J,2]="C" ; CAMPO=&(MAT_STR[J,1])
CASE MAT_STR[J,2]="D" ; CAMPO=DTOC(&(MAT_STR[J,1]))
CASE MAT_STR[J,2]="N" ; CAMPO=STR(&(MAT_STR[J,1]))
CASE MAT_STR[J,2]="L" ; CAMPO=&(MAT_STR[J,1]) ; CAMPO=IIF(CAMPO,".T.",".n.")
CASE MAT_STR[J,2]="M" ; CAMPO=&(MAT_STR[J,1])
ENDCASE
AADD(MAT1,SPACE(06)+PADR(MAT_STR[J,1],10," ")+" - "+;
MAT_STR[J,2]+" - "+;
TRAN(MAT_STR[J,3],"###")+" - "+;
TRAN(MAT_STR[J,4],"@Z ###")+;
IIF ( AT(MAT_STR[J,1],K)<>0 , " < " , " - " )+;
CAMPO)
NEXT J
ENDIF
NEXT I
AADD(MAT1,REPL("=",80))
SELE &AREASELE
@ 01,01 LISTBOX oLbx1 VAR cMat1;
ITEMS MAT1 ;
SIZE 340,230;
;// [ ON CHANGE <fcambio> ] ;
ON DBLCLICK ESTRUTU2() ;
;// [ ON [ LEFT ] DBLCLICK <fdocleclick> ] ;
FONT ofCOUR15;
OF dAB
@ 16.5,20 BUTTON oB1 PROMPT "GRAVAR _DB.TXT" SIZE 60,12 OF dAB ACTION ESTRUTU1()
@ 16.5,40 BUTTON oB1 PROMPT "OK" SIZE 30,12 OF dAB ACTION dAB:end()
ACTIVATE DIALOG dAB CENTERED
IF CENT1="ON" ; SET CENT ON ; ENDIF
RETURN .T.
STATIC FUNCTION ESTRUTU2()
MSGINFO(CMAT1)
RETURN .T.
STATIC FUNCTION ESTRUTU1()
LOCAL AREASELE:=SELECT(), NOSELE:=RECNO()
SELE 99
USE
DbCreate( "TEMP", { { "A", "C", 255, 0 }})
USE TEMP
FOR I=1 TO LEN(MAT1)
APPEND BLANK
RLOCK_()
REPLACE A WITH MAT1[I]
UNLOCK_()
NEXT I
COPY TO _DBF.TXT SDF
? "Arquivo _DBF.TXT salvo."+CHR(13)+CHR(13)+"Estruturas dos arquivos"
SELE &AREASELE;GO NOSELE
RETURN .T.
*****************************************************************************
@braços :?)
