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