Pq nao consigo usar o DEBUG do FiveWin 1.95

Discussão sobre a biblioteca Fivewin - O Clipper para Windows.

Moderador: Moderadores

Avatar do usuário
Bad Boy
Usuário Nível 1
Usuário Nível 1
Mensagens: 23
Registrado em: 06 Jul 2004 08:39
Localização: Santo Antonio da Platina - PR
Contato:

Pq nao consigo usar o DEBUG do FiveWin 1.95

Mensagem por Bad Boy »

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..!!
Site:www.zava.vo6.net
||||||||
Z@v@
^
----
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Mensagem por rochinha »

Amiguinho

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.
  
  
*****************************************************************************

Encontrei na NET, só não sei onde.

@braços :?)
Responder