Página 1 de 1

Harbour e xBase++

Enviado: 02 Out 2010 08:27
por Itamar M. Lins Jr.
Ola!
Muitas funções do xBase++ já estão no Harbour.
Essa é bem interessante:

Código: Selecionar todos

FUNCTION xpp_dbUseArea( lNewArea, cDriver, cName, xcAlias, lShared,
lReadonly )
  LOCAL nOldArea
  LOCAL nArea
  LOCAL cTAlias

  IF ! ISCHARACTER( xcAlias )
     xcAlias := ""
  ENDIF

  IF Empty( xcAlias )
     xcAlias := cName
  ENDIF

  IF lNewArea
     nOldArea := Select()
     IF ( nArea := Select( xcAlias ) ) > 0
         xcAlias += "_" + hb_ntos( nArea )
     ENDIF
     dbSelectArea( nOldArea )
  ELSE
     IF !Empty(cTAlias:=Alias())
        (cTAlias)->(dbCloseArea())
     ENDIF
  ENDIF

  RETURN dbUseArea( lNewArea, cDriver, cName, xcAlias, lShared,
lReadonly )
Saudações,
Itamar M. Lins Jr.

Re: Harbour e xBase++

Enviado: 02 Out 2010 13:37
por carlos_dornelas
Itamar,

Parabéns por sua iniciativa! Tenho acompanhado o news do harbour e percebe-se que está a pleno vapor, principalmente no que se refere a HBQT. Pena que é tudo em inglês e para os mais leigos (em inglês e em harbour) muita coisa interessante fica sem ser percebida. Eu, por exemplo, ainda não consegui gerar sequer um Ola Mundo com a hbqt, nem pelo harbour noturno, quanto mais com o compilado pelo SVN. Somente consegui com a minigui 4, do Roberto Lopez que, aliás, sempre pensa no usuário mais leigo, ou seja, vem tudo pronto, basta um compile.bat ou, agora, um build.bat e o exemplo já é compilado!

Acompanho também seus posts, sempre trazendo novidades do harbour 2.x. Continue assim. Sempre que possível, sugiro que você já nos dê uma pequena explicação sobre a novidade, ou seja, para quê ela serve. Assim, os mais leigos poderão aproveitar mais suas contribuições.

Antonio Carlos

Re: Harbour e xBase++

Enviado: 03 Out 2010 10:15
por Itamar M. Lins Jr.
Eu penso que em alguns casos, o melhor é ensinar a pescar, e não dá o peixe.

Lendo os fontes o interessado irá aprender, caso ele não entenda determinado trecho dessa função que postei, é só perguntar.
A HBQT está passando por reformas, mas acredito está cada vez mais estabilizada.
Então, a função:
IF lNewArea // Se é para abrir em nova area
16 nOldArea := Select() //Pegar a area atual
17 IF ( nArea := Select( xcAlias ) ) > 0 //Se a area já estiver aberta, abrir o mesmo dbf com outro alias
18 xcAlias += "_" + hb_ntos( nArea ) //aqui a função hb_ntos(), retorna um numero em string no caso a data.
19 ENDIF
20 dbSelectArea( nOldArea )
21 ELSE
22 IF !Empty(cTAlias:=Alias()) //caso o alias for passado e já estiver aberto, fechar para não ocorrer erro.
23 (cTAlias)->(dbCloseArea())
24 ENDIF
25 ENDIF
Saudações,
Itamar M. Lins Jr.

Re: Harbour e xBase++

Enviado: 03 Out 2010 14:26
por Itamar M. Lins Jr.
Continuando...
Pena que é tudo em inglês e para os mais leigos (em inglês e em harbour) muita coisa interessante fica sem ser percebida.
Infelizmente qualquer linguagem de programação é assim.
Para aprender tem que saber o mínimo de inglês até os livros são melhores na linguagem nativa em que foram escritos.
A melhor documentação do [x]Harbour são os seus fontes, tem também alguns exemplos.

Saudações,
Itamar M. Lins Jr.