Migrando de Clipper para Harbour

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

GilmarDalantonia
Usuário Nível 1
Usuário Nível 1
Mensagens: 44
Registrado em: 11 Dez 2014 16:42
Localização: Adamantina/SP

Migrando de Clipper para Harbour

Mensagem por GilmarDalantonia »

Bom dia amigos... estou inciando no harbour e estou com bastante dificuldades... meu sistema foi desenvolvido em clipper5.3 com a visuallib, ja vi aqui no forum varios exemplos do uso da visuallib com harbour, até baixei um post do prof.toledo, consegui adaptar meu sistema... mas não estou conseguindo mudar o tamanho da tela, ou melhor, consegui mudar com exemplos de outros parceiros aqui do forum... o problema é q qdo muda o tipo de fonte ou tamanho de tela, a visuallib desconfigura... se alguém puder me ajudar, ja fico muito grato... ñ precisa ser com a visuallib.... se tiver outras opções, gostaria de testar tb... obrigado
Editado pela última vez por Toledo em 21 Abr 2017 10:42, em um total de 1 vez.
Razão: O presente tópico foi dividido de um outro tópico que estava na seção Contribuição, Dicas e Tutoriais, uma vez que seu conteúdo não tem relação com o assunto do tópico.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Meu menu estilo Clipper

Mensagem por JoséQuintas »

Quando for assim, inicie uma mensagem nova, com outro título.
Esta é sobre menu estilo Clipper.
Todo mundo que participou desta mensagem acaba recebendo aviso que tem novidade sobre menu estilo Clippper, mas não tem.

Acho que é local mais adequado seria em: Harbour, talvez com o título: migrando de Clipper para Harbour

Se está usando console, igual Clipper, vai seguir as regras do Clipper: propriedades da janela, escolher tamanho e fonte.
Se está usando janela, GTWVG, GTWVW, GTWVT, etc... dá pra fazer pelo Harbour.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
GilmarDalantonia
Usuário Nível 1
Usuário Nível 1
Mensagens: 44
Registrado em: 11 Dez 2014 16:42
Localização: Adamantina/SP

Migrando de Clipper para Harbour

Mensagem por GilmarDalantonia »

Bom dia Jose... estou usando console igual ao clipper.... o problema eu acho q é o uso da visuallib... como eu disse anteriormente, se eu mudo o tamanho ou a fronte de letre, os botões, frames, qualquer função da visuallib desconfigura.
MSDN
Usuário Nível 4
Usuário Nível 4
Mensagens: 741
Registrado em: 28 Nov 2003 15:55
Localização: CWB
Contato:

Migrando de Clipper para Harbour

Mensagem por MSDN »

Montei um roteiro visando ter um material simples porém prático para quem está saindo do Clipper e ingressando no Harbour (modo console).
Abaixo a sequência e explicações necessárias :

1- Os fontes de um programa modo console que foi feito em Clipper muitos anos atrás e que agora é compilado com o Harbour. Para descompactar o arquivo, crie no drive C: de sua máquina a pasta DEFIN e descarregue tudo nela, a senha para entrar no programa é o número 1, e para recompilar o programa (após o ambiente de programação estar OK), basta executar o arquivo COPILA.BAT

https://www.4shared.com/rar/OwOgH6fKei/ ... do_co.html

2- O linkador que o Harbour utilizará (existem outros, esse só é o mais usado) para gerar os arquivos EXE é o Borland C++ 5.5.1, que após feito o download, deverá ser instalado em sua máquina seguindo a lógica do NEXT -> NEXT ...., ao final da instalação, você terá a pasta C:\BORLAND\BCC55

http://www.hmgextended.com/files/MISC/F ... eTools.exe

3- O compilador Harbour na versão 3.2, que na prática seria o Clipper, com todos seus comandos e funções (seguindo suas sintaxes), e outros comandos e funções que foram adicionados para dar suporte a recursos que não existiam na época do Clipper ou que o Clipper não dava suporte, por ser um compilador 16 bits. Nessa instalação, será instalada a última versão da biblioteca gráfica MiniGUI Extended em sua máquina ( C:\MINIGUI ), porém, dentro de sua pasta, é que estará a instalação do Harbour, com suas pastas BIN , LIB e INCLUDE (tal como o Clipper), optei por fazer a instalação do Harbour dessa forma (não precisa ser assim, você pode baixá-lo de forma separada e instalar em C:\HARBOUR por exemplo) para que caso o programador queira fazer testes com programação visual ( GUI - for Windows ), já tenha uma LIB disponível para isso, com muitos exemplos a seu dispor (saliento que existem outras LIBs gráficas que trabalham em conjunto com o Harbour, pagas ou não)

http://www.hmgextended.com/files/CONTRI ... -setup.exe

4- Para que seja possível compilar e linkeditar os fontes ( PRG ), é preciso montar o ambiente de trabalho adequado, como era no Clipper, para isso, você já instalou o Borland C++ 5.5.1 ( Linkador ) e o Harbour 3.2 ( Compilador ), e deverá ter no C:\ de sua máquina as seguintes pastas :

C:\Borland\BCC55\Bin
C:\Borland\BCC55\Lib
C:\Borland\BCC55\Lib\PSDK
C:\Borland\BCC55\Include

C:\MiniGUI\Harbour\Bin
C:\MiniGUI\Harbour\Lib
C:\MiniGUI\Harbour\Include


e como exemplo, a pasta do sistema demonstração
C:\Defin

Estando tudo OK, você precisará acrescentar (logo no começo) na variável de ambiente do seu Windows, o seguinte caminho :

c:\borland\bcc55\bin;c:\borland\bcc55\lib;c:\borland\bcc55\lib\psdk;c:\borland\bcc55\include;c:\minigui\harbour\bin;c:\minigui\harbour\lib;c:\minigui\harbour\include;

OBS : Para chegar no local onde esse procedimento deve ser feito, siga essa sequência :
- Abra o Painel de Controle
- Clique em Sistema
- Clique em Configurações Avançadas do Sistema
- Clique no Botão Variáveis de Ambiente
- Procure a palavra " Path " em " Variáveis do Sistema ", clique sobre ela duas vezes e acrescente os caminhos de pasta necessários (acima), feito isso, basta ir clicando nos botões OK até fechar todas as janelas, e logo em seguida, abrir o Prompt de Comando (ele deve estar fechado antes, mas se não estava, basta fechar a abrir para que as mudanças surtam efeito) , ir até a pasta C:\Defin e digitar :

COPILA + ENTER

e ver todo o processo acontecendo, de preferência fazendo alguma mudança no fonte principal ( DEFIN.PRG ) para ver o resultado.

Abraços
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Migrando de Clipper para Harbour

Mensagem por Toledo »

MSDN escreveu:4- Para que seja possível compilar e linkeditar os fontes ( PRG ), é preciso montar o ambiente de trabalho adequado...
Bom, se vai utilizar a MiniGui Extended, então não será necessário estas configurações do item 4 acima, basta alterar o comando que está no seu arquivo COPILA.BAT:

altere o comando:
C:\MiniGUI\Harbour\bin\hbmk2 sistema

Para:
C:\MiniGUI\Batch\hbmk2 sistema

Um outro detalhe, você tem que configurar o BCC, então crie um arquivo com o nome bcc32.cfg dentro da pasta c:\Borland\BCC55\Bin, com o seguinte conteúdo:

-Ic:\Borland\bcc55\include
-Lc:\Borland\bcc55\lib;c:\Borland\bcc55\lib\psdk

Obs.: no início da primeira linha acima, depois do sinal de - é a letra i maiúscula.

Crie também na mesma pasta o arquivo ilink32.cfg, com o seguinte conteúdo:

-Lc:\Borland\bcc55\lib;c:\Borland\bcc55\lib\psdk

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Migrando de Clipper para Harbour

Mensagem por Itamar M. Lins Jr. »

Ola!
Tá vendo Quintas ? BCC 5.5 !! É mole ?
Ai depois vai querer usar o Habour 3.4 ou GTQT, ou outras opções que não funcionam no BCC 5x
Não é melhor ensinar a usar com Mingw ? que é o padrão do Harbour ?
Veja quantos passos usando da forma que eles ensinaram agora. Da forma que vc ensinou não é bem mais fácil, menor ?
https://pctoledo.org/forum/viewto ... 43&t=17565

Se todos seguissem as orientações do Viktor, seria mais fácil. Mas ai cada um puxa para um lado. E começar em 2017 usando o BCC 5x ?
Um conselho, veja sempre da fonte. De quem está na frente do Harbour, siga informações das fontes principais, para não ficar preso no futuro.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Migrando de Clipper para Harbour

Mensagem por Itamar M. Lins Jr. »

Ola!
mas não estou conseguindo mudar o tamanho da tela, ou melhor, consegui mudar com exemplos de outros parceiros aqui do forum...
Tem uns 4 dias que o Viktor incorporou este exemplo no Harbour 3.4, isso deve te ajudar.

Código: Selecionar todos

#include "hbgtinfo.ch"
#include "inkey.ch"

#if defined( __HBSCRIPT__HBSHELL )
INIT PROCEDURE gtinit()
   #if defined( __PLATFORM__WINDOWS )
      hbshell_gtSelect( "GTWVT" )
   #elif defined( __PLATFORM__UNIX )
      hbshell_gtSelect( "GTXWC" )
   #endif
   RETURN
#else
   #if defined( __PLATFORM__WINDOWS )
      REQUEST HB_GT_WVT_DEFAULT
      REQUEST HB_GT_WVT
   #elif defined( __PLATFORM__UNIX )
      REQUEST HB_GT_XWC_DEFAULT
      REQUEST HB_GT_XWC
   #endif
#endif

PROCEDURE Main()

   LOCAL nFontHeight         := 17
   LOCAL nFontWidth          := 7
   LOCAL cFontName           := "Consolas"
   LOCAL nFontWeight         := HB_GTI_FONTW_BOLD
   LOCAL nScreenHeightChars  := 40
   LOCAL nScreenWidthChars   := 120

   LOCAL nDeskTopHeightPx    := hb_gtInfo( HB_GTI_DESKTOPHEIGHT )
   LOCAL nDeskTopWidthPx     := hb_gtInfo( HB_GTI_DESKTOPWIDTH )
   LOCAL nScreenHeightPx
   LOCAL nScreenWidthPx
   LOCAL nViewMaxHeightChars
   LOCAL nViewMaxWidthChars

   LOCAL nWeightFactor       := iif( nFontWeight > 2, 1, 0 )

   LOCAL GetList := {}

   SetMode( nScreenHeightChars, nScreenWidthChars )

   nFontHeight := Int( ( ( nDeskTopHeightPx - 30 ) * 0.9 ) / nScreenHeightChars )
   nFontWidth  := Int( ( nDeskTopWidthPx * 0.9 ) / nScreenWidthChars )
   hb_gtInfo( HB_GTI_SCREENWIDTH,  ( nFontWidth + nWeightFactor )  * nScreenWidthChars )
   hb_gtInfo( HB_GTI_SCREENHEIGHT, nFontHeight * nScreenHeightChars )
   hb_gtInfo( HB_GTI_FONTNAME,     cFontName )
   hb_gtInfo( HB_GTI_FONTWEIGHT,   nFontWeight )
   hb_gtInfo( HB_GTI_FONTWIDTH,    nFontWidth )
   hb_gtInfo( HB_GTI_FONTSIZE,     nFontHeight )
   hb_gtInfo( HB_GTI_FONTWEIGHT,   nFontWeight )

   SetColor( "W/B, W/R+,,, N/W" )

   CLS

   DO WHILE LastKey() != K_ESC

      cFontName     := AllTrim( cFontName )
      nWeightFactor := iif( nFontWeight > 2, 1, 0 )

      SetMode( nScreenHeightChars, nScreenWidthChars )

      hb_gtInfo( HB_GTI_SCREENWIDTH,  ( nFontWidth + nWeightFactor )  * nScreenWidthChars )
      hb_gtInfo( HB_GTI_SCREENHEIGHT, nFontHeight * nScreenHeightChars )
      hb_gtInfo( HB_GTI_FONTNAME,     cFontName )
      hb_gtInfo( HB_GTI_FONTWEIGHT,   nFontWeight )
      hb_gtInfo( HB_GTI_FONTWIDTH,    nFontWidth )
      hb_gtInfo( HB_GTI_FONTSIZE,     nFontHeight )
      hb_gtInfo( HB_GTI_FONTWEIGHT,   nFontWeight )
      CLS

      cFontName := PadR( cFontName, 50 )

      TotalPixels( nScreenHeightChars, nFontHeight, 0, 19, 20 )
      TotalPixels( nScreenWidthChars, nFontWidth, nWeightFactor, 20, 20 )

      nScreenHeightPx     := hb_gtInfo( HB_GTI_SCREENHEIGHT )
      nScreenWidthPx      := hb_gtInfo( HB_GTI_SCREENWIDTH )
      nViewMaxHeightChars := hb_gtInfo( HB_GTI_VIEWMAXHEIGHT )
      nViewMaxWidthChars  := hb_gtInfo( HB_GTI_VIEWMAXWIDTH )

      @  0,  0 SAY PadL( "hello world", MaxCol() + 1 )
      @  0,  0 SAY "hello world"
      @ MaxRow(),  0 SAY PadL( "hello world", MaxCol() + 1 )
      @ MaxRow(),  0 SAY "hello world"

      @  2,  2 SAY "Codepage          " + hb_ValToExp( hb_gtInfo( HB_GTI_CODEPAGE ) )
      @  4,  2 SAY "DeskTopHeightPx   " + Str( nDeskTopHeightPx, 4 )
      @  5,  2 SAY "DeskTopWidthPx    " + Str( nDeskTopWidthPx, 4 )

      @  4, 29 SAY "ScreenHeightPx " + Str( nScreenHeightPx, 4 )
      @  5, 29 SAY "ScreenWidthPx  " + Str( nScreenWidthPx, 4 )

      @  4, 54 SAY "ViewMaxHeightChars " + Str( nViewMaxHeightChars, 4 )
      @  5, 54 SAY "ViewMaxWidthChars  " + Str( nViewMaxWidthChars, 4 )

      @  7,  2 SAY "MaxRow()          " + Str( MaxRow(), 4 )
      @  8,  2 SAY "MaxCol()          " + Str( MaxCol(), 4 )

      @ 10,  2 SAY "ScreenHeightChars " GET nScreenHeightChars PICTURE "999" ;
         VALID TotalPixels( nScreenHeightChars, nFontHeight, 0, 19, 20 )
      @ 11,  2 SAY "ScreenWidthChars  " GET nScreenWidthChars  PICTURE "999" ;
         VALID TotalPixels( nScreenWidthChars, nFontWidth, nWeightFactor, 20, 20 )

      @ 13,  2 SAY "FontHeight        " GET nFontHeight   PICTURE "999" ;
         VALID TotalPixels( nScreenHeightChars, nFontHeight, 0, 19, 20 )
      @ 14,  2 SAY "FontWidth         " GET nFontWidth    PICTURE "999" ;
         VALID TotalPixels( nScreenWidthChars, nFontWidth, nWeightFactor, 20, 20 )

      @ 16,  2 SAY "FontName          " GET cFontName
      @ 17,  2 SAY "FontWeight        " GET nFontWeight   PICTURE "999"

      @ 19,  2 SAY "TotalHeight "
      @ 20,  2 SAY "TotalWidt   "

      READ
   ENDDO

   RETURN

FUNCTION TotalPixels( nScreen, nFont, nWeight, nRow, nCol )

   @ nRow, nCol SAY Int( nScreen * ( nFont + nWeight ) ) PICTURE "9999"

   RETURN .T.
Usar: hbmk2 wvtwin.prg
ou hbrun wvtwin.prg

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
GilmarDalantonia
Usuário Nível 1
Usuário Nível 1
Mensagens: 44
Registrado em: 11 Dez 2014 16:42
Localização: Adamantina/SP

Migrando de Clipper para Harbour

Mensagem por GilmarDalantonia »

boa tarde pessoal... estou testando os exemplos q vc me enviaram... ja me ajudou muito... fico muito grato... valeu a todos...
Responder