Página 1 de 1

De Clipper 5.2E para xHarbour 0.99

Enviado: 13 Jul 2004 09:13
por gransoft
ARAGUARI-MG, 13 de julho de 2004.

Prezados Srs.,

Não adianta mais ignorarmos o Linux. Paixões à parte, devemos dominar também este Sistema Operacional.

Para um bom Clippeiro, o "caminho das pedras" é aos poucos, e ainda no "WinDOS", converter seus Aplicativos para uma linguagem de programação disponibilizada para múltiplas plataformas. No caso, o xHarbour trabalha bem em Windows (texto) e também no Linux (texto). Por enquanto, não citarei interfaces gráficas (Windows).

A vantagem é que este compilador possue versões pagas e open source.
A desvantagem, inicialmente, é que o tal 100% de compatibilidade ainda está mais para 99% ...

No meu caso particular, após instalado e testado, um primeiro impasse: trabalho com layout de telas, formatadas, e ao definir cores de caracteres e fundo, o resultado não é o esperado. Por mais que se solicite auxílio em Fóruns sobre o assunto, a resposta é de que o problema NÃO existe, ou já foi resolvido na versão atual (0.99).

Resolvido como, se compilo o fonte e o problema permanece, inviabilizando uma migração definitiva? Não é fácil aceitar o argumento de que é "fruto da minha imaginação", sendo um progamador Clipper desde os primórdios da Nantucket.

Resumindo, NÃO tenho controle sobre cores para SAY/GET com o SETCOLOR ... nem quando utilizo GET com SET DELIMITERS ON ... e para completar, o SET INTENSITY OFF também não desativa a "faixa" que delimita um campo GET ... se a tela é formatada, isso é desnecessário.

Segue um exemplo. Quem tiver interesse em compilar, testar e constatar, qualquer sugestão é bem-vinda.

Atenciosamente,
Janis Peters Grants.

http://www.gransoft.com.br
gransoft@zipmail.com.br

Código: Selecionar todos

******************************************************************************
* TESTE.PRG - SISTEMA DE CONTAS A PAGAR.                                     *
*                                                                            *
* ARAGUARI-MG, 01/01/2004. DATA DA ULTIMA ALTERACAO: 28/06/2004.             *
*                                                                            *
* JANIS PETERS GRANTS                                                        *
******************************************************************************

*
* # include "SET.CH"
* # include "INKEY.CH"
* # include "FILEIO.CH"
*

FUNCTION Main()
   *
   SETCANCEL(.F.)          && CANCELA <ALT-C> - PROTECAO DE ARQUIVOS
   SET BELL       OFF                                                              
   SET CENTURY    ON       && OFF ANO=02 DIGITOS(97) ... ON ANO=04 DIGITOS(1997)  
   SET CURSOR     OFF                                                              
   SET DATE       BRITISH  && DATAS COM FORMATO DIA/MES/ANO                       
   SET DELETED    ON       && NAO MOSTRA REGISTROS MARCADOS PARA EXCLUSAO.        
   SET DELIMITERS OFF                                                              
   SET DELIMITERS TO "||"                                                          
   SET ESCAPE     OFF                                                              
   SET EXACT      ON       && CHAVES PARA PESQUISA DEVERAO SER COMPLETAS.         
   SET EXCLUSIVE  OFF      && ARQUIVOS COMPARTILHADOS ...                         
   SET HEADING    OFF                                                              
   SET INTENSITY  OFF      && ON - NECESSARIO PARA MENUS COM BARRAS "PROMPT"
   SET MESSAGE TO 24 CENTER                                                        
   SET SAFETY     OFF                                                              
   SET SCOREBOARD OFF                                                              
   SET STATUS     OFF                                                              
   SET TALK OFF                                                                    
   SET WRAP       ON       && PERMITE "ROLAGEM" DOS PROMPTS NOS MENUS.            
   *******************************************************************************
   PRIVATE cSistema := "*** SISTEMA DE CONTAS A PAGAR ***"
   PRIVATE cLogin   := SPACE(10)
   PRIVATE cSenha   := SPACE(10)
   PRIVATE cConfirma
   *******************************************************************************
   PRIVATE cCor0 := ""
   PRIVATE cCor1 := "BG/B               "
   PRIVATE cCor2 := "+W/B               "
   PRIVATE cCor3 := "+W/B               "
   PRIVATE cCor4 := "+GR*/B             "
   PRIVATE cCor5 := "+GR*/R             "
   PRIVATE cCor6 := "+BG/B,+GR/R,N,,+W/B"
   PRIVATE cCor7 := "+BG/B,+GR/R,,N,,,, "
   *******************************************************************************
   *
   CLEAR
   *
   Tela()
   *
   WHILE .T.
      cConfirma := "N"
      SETCOLOR(cCor4)
      Centro(24,"*** DIGITE OS DADOS CORRETAMENTE ***")
      SETCOLOR(cCor3)
      @ 11,38 SAY cLogin PICTURE '@!'
      @ 13,38 SAY cSenha PICTURE '@!'
      SETCOLOR(cCor2)
      @ 11,38 GET cLogin PICTURE '@!'
        READ
      SET DELIMITERS ON
      @ 13,37 GET cSenha PICTURE '@!'
        READ
      SET DELIMITERS OFF
      SETCOLOR(cCor3)
      Centro(24,"DADOS CORRETOS  (S/N)? ")
      Confirma(24,COL(),@cConfirma)
      IF cConfirma == "S"
         QUIT
      END
   END  && WHILE .T.
   *
RETURN NIL
***

*** PROCEDURE para Centralizar Texto no Video ***
PROCEDURE Centro(nL,cMsg)
IF (VALTYPE(nL) <> "N") .OR. (nL == NIL)
   nL := 24
END
IF (VALTYPE(cMsg) <> "C") .OR. (cMsg == NIL)
   cMsg := "*** ERRO NA MENSAGEM ***"
END
LimpaLinha(nL)
@ nL,(1+INT(78-LEN(ALLTRIM(cMsg)))/2) SAY cMsg
RETURN
***

*** PROCEDURE para Confirmar Perguntas ***
PROCEDURE Confirma(nL,nC,cConfirma)
* HoraData()
SETCOLOR(cCor3)
SET DELIMITERS ON
* SET INTENSITY OFF
@ nL,nC GET cConfirma PICTURE '!' VALID (cConfirma $ "SNC")
READ
* SET INTENSITY ON
LimpaLinha(nL)
SET DELIMITERS OFF
SETCOLOR(cCor0)
RETURN
***

*** PROCEDURE para Limpar Linha ***
PROCEDURE LimpaLinha(nL)
LOCAL cCor := Set(_SET_COLOR)
IF (VALTYPE(nL) <> "N") .OR. (nL == NIL)
   nL := 24  && 23
END
SETCOLOR(cCor1)
IF nL == 24  && 23
   * @ nL,01 SAY SPACE(78)
     @ nL,00 SAY REPLICATE(SPACE(01),80)
ELSE
   @ nL,02 SAY SPACE(76)
END
Set(_SET_COLOR,cCor)
RETURN
***

STATIC PROCEDURE Tela()
*
* TESTE.WW : Arquivo de Lay-Out de Tela 
*
* Criado por JANIS PETERS GRANTS em June 28, 2004
*
SETCOLOR(cCor1)
@ 09,28 SAY "ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»"
@ 10,28 SAY "º ÚÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄ¿ º"
@ 11,28 SAY "º ³Login ³1234567890³ º"
@ 12,28 SAY "º ÀÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÙ º"
@ 13,28 SAY "º  Senha |1234567890| º"
@ 14,28 SAY "ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ"
SETCOLOR(cCor0)
RETURN
***

******************************************************************************



concordo plenamente

Enviado: 13 Jul 2004 10:45
por filizola
em número, gênero e grau, e isto é realmente preocupante, uma vez que se optar-mos por uma linguagem que corre o risco de se tornar "abandoneware", poderíamos estar despendendo nosso tempo com uma linguagem segura. é sempre assim caramba, quando pensamos que veremos a luz no fim do túnel aprece um problema simples, mas não solucionado.

Enviado: 18 Jul 2004 17:04
por culik
Janis

Seu codigo funciona perfeitamente com o xharbour 099

ele demostra as cor corretamente
seu codigo aqui com clipper 5.3 e xharbour 099 demostram o mesmo resultado

e poste preferencialmente na lista harbourbr por ser lista oficial aqui no Brasil

[]´s
Luiz