Clipper On Line • Ver Tópico - Hbide, HBDBU r417
Página 1 de 2

Hbide, HBDBU r417

MensagemEnviado: 02 Ago 2015 12:52
por Itamar M. Lins Jr.
Ola!

Pacote único usando Qt 5.5.

Link p/ download.
https://drive.google.com/file/d/0B1MfEZ3uuAPhSlE0SGNzS0ZhRm8/view?usp=sharing

Na minha opinião a melhor IDE para o programador xHarbour.
2015-07-31 15:14 UTC-0800 Pritpal Bedi (bedipritpal at hotmail.com)(r416)
  * hbide/projmanager.prg
    % Changed: the behavior of opening "Output Console".
       In case of any errors in project building Output Console is opened.
       At all other times no action is taken. It means if console is
       already opened or kept opened after an error, it will remain
       visible. A request by Daniel Du Pre.



Saudações,
Itamar M. Lins Jr.

Hbide, HBDBU r417

MensagemEnviado: 17 Ago 2015 21:09
por fladimir
Estou fazendo testes no HBIDE e estou achando alguns aspectos interessantes em comparação ao xDev q utilizo mais frequentemente, mas não consegui achar algo semelhante ao q tenho no xDev q seria o seguinte...

Suponha q em algum lugar do projeto eu tenha uma função chamada MinhaFuncao( parametro1, parametro2, parametro3)

Em qualquer lugar do projeto q eu precise chamar esta função qdo começo a escrever exemplo Minha... e pression CTRL + ESPACO o xDev já sugere uma lista de funções q comecem com Minha.. ai qdo eu escolho MinhaFuncao já aparece os parametros q tenho nesta funcao pra preencher, isto no dia a dia é bem útil, caso a hbIDE realmente não tenha (não achei) seria interessante, no meu ponto de vista, sugerir, como faço (caso não tenha) pra sugerir?

[]´s

Hbide, HBDBU r417

MensagemEnviado: 18 Ago 2015 08:59
por Itamar M. Lins Jr.
Ola!
Pode pedir/sugerir aqui.
https://groups.google.com/forum/#!forum/qtcontribs

Mas adianto, que vc pode criar isso tudo via programação dentro da própria HBIDE.

Saudações,
Itamar M. Lins Jr.

Hbide, HBDBU r417

MensagemEnviado: 18 Ago 2015 09:55
por fladimir
Ok.. Obrigado

[]´s

Hbide, HBDBU r417

MensagemEnviado: 20 Ago 2015 19:40
por janio
eh possível configurar a COR DO FUNDO (texto) nessa ide?

Janio

Hbide, HBDBU r417

MensagemEnviado: 20 Ago 2015 21:49
por asimoes
Itamar,

A hbide tá reclamando de hwgdebug?

Hbide, HBDBU r417

MensagemEnviado: 21 Ago 2015 08:10
por Itamar M. Lins Jr.
Ola!
eh possível configurar a COR DO FUNDO (texto) nessa ide?

Sim é possível. E muitas outras coisas.

A hbide tá reclamando de hwgdebug?

Aqui não. Mas não entendi direito sua pergunta.

Saudações,
Itamar M. Lins Jr.

Hbide, HBDBU r417

MensagemEnviado: 21 Ago 2015 08:40
por asimoes
Itamar,

Estou tentado debugar este teste:

Eu até consigo gerar o executável e rodar ele. mas quando faço o build para debug não acontece nada.

Segue o código que eu estou tentando testar:

O hbp:
#
# $Id$
#

-3rd=hbide_version=1.0
-3rd=hbide_title=demo
-3rd=hbide_workingfolder=D:/Harbour/h-Asort
-3rd=hbide_output=demo

# Autor     : Alexandre Simäes
# VersÆo    : 1.0
# Data      : 20/08/2015
# Harbour   : Harbour 3.4.0dev
#             http://harbour-project.org/
# Compilador: MinGW GNU C 5.1 (32-bit)
# ---------------------------------------------------------------------------------
# Nome do Execut vel
# ---------------------------------------------------------------------------------
# -o<outname> Diretiva para nome de arquivo de sa¡da
-odemo
# ---------------------------------------------------------------------------------
# Bibliotecas
# ---------------------------------------------------------------------------------
# l<libname> Diretiva para linkar com a biblioteca <libname>. <libname> deve omitir
# path, extensÆo e o prefixo 'lib' (… menos que fa‡a parte do nome-de-arquivo).

-lhwgui
-lprocmisc
-lgtwvg
-lgtwvt
-lhbct
-lhbwin
-lhbnf
-lxhb
-lhbblink
-lhbmemio
-lhbhpdf
-llibhpdf
-lpng
-lhbzebra
-lhbwin
-lversion
hbmisc.hbc
hbwin.hbc
# ---------------------------------------------------------------------------------
# Caminhos dos Includes
# ---------------------------------------------------------------------------------
# -i<p>|-incpath=<p>  paths adicionais para pesquisa de arquivos headers
-incpath=\hb32fork\hwgui\include;
# ---------------------------------------------------------------------------------
# Caminho da Lib HPROC E HGAC
# ---------------------------------------------------------------------------------
# -L<libpath>         path adicional para pesquisar por bibliotecas
-L\hb32fork\hwgui\lib;lib;
# ---------------------------------------------------------------------------------
# Outros Parƒmetros
# ---------------------------------------------------------------------------------
# .\OBJ\ Grava os arquivos .c e .o na subpasta OBJ
# ---------------------------------------------------------------------------------
# -workdir=<dir>      Working directory
#                     Diretiva para diret¢rio de trabalho da compila‡Æo.
#                     (default: .hbmk/plat/comp in incremental mode, OS temp
#                     directory otherwise).
-workdir=.\OBJ\
-gtgui
# ---------------------------------------------------------------------------------
# -[no]head[=<m>]     Control source header parsing (in incremental build mode)
#                     <m> can be: native (uses compiler to extract
#                     dependencies), full (default, uses simple text parser on
#                     the whole file), dep, off.
-head=full           
# ---------------------------------------------------------------------------------
# /n[<type>]          No implicit starting procedure
#                     <type>: 0=no implicit starting procedure
#                             1=no starting procedure at all
#                             2=add starting procedure if necessary
-n                         
# ---------------------------------------------------------------------------------
# -[no]warn[=lev]     Define o n¡vel de avisos (warnings) do compilador C
#                     <lev> pode ser: max, yes, low, no, def (padrão: yes).
-warn=no
# ---------------------------------------------------------------------------------
# -inc                Habilita o modo de compilaçao incremental.
-inc                 
# ---------------------------------------------------------------------------------
# -[no]debug          Adicionar/excluir informa‡äes de debug do compilador C.
#                     Para compilar com Harbour utilize a op‡Æo -b como de
#                     costume.
#-b                   
# ---------------------------------------------------------------------------------
# -d<diretiva>        Diretiva de compila‡Æo para ifdef
-dHARBOUR
-dVERSAO_ADOH
# ---------------------------------------------------------------------------------
# -icon=<file>        Seta o ícone para o aplicativo. <file> deve possuir um
#                     formato compat¡vel com a plataforma de destino.
#                     Diretiva para informar o icone da aplicação.
#-icon=P:\GERAL\HARBOUR\HARB_WIN.ICO
# ---------------------------------------------------------------------------------
# /u[<file>]          Usa comando def set em <arquivo> (ou nenhum)
#                     Diretiva para carregar arquivo header (.ch) para toda
#                     aplicação.
-u+hbcompat.ch
-mt
# ---------------------------------------------------------------------------------
# Prg(s) e Rc(s)
# ---------------------------------------------------------------------------------
DEMO.PRG
asort2.c
# ---------------------------------------------------------------------------------

O fonte: demo.prg
#include "wvtwin.ch"
#include "hbcompat.ch"
#include "hbgtinfo.ch"
#include "hbgtwvg.ch"
#include "wvgparts.ch"
#include "dbinfo.ch"
#include "fileio.ch"
#include "hbdyn.ch"

Procedure Main

   local ii := hb_secondsCPU()

   aSort( AFill( Array( 50000 ), 0 ),,, {|x,y| x > y } )
   
   ? hb_secondsCPU() - ii, "sec."

   ii := hb_secondsCPU()
   
   aSort2( AFill( Array( 50000 ), 0 ),,, {|x,y| x > y } )

   ? hb_secondsCPU() - ii, "sec."

   hwg_MsgInfo(NomeExecutavel())

   Inkey(0)

Return

INIT FUNCTION AppSetup()
 
  ANNOUNCE hwg_ErrSys
 
  REQUEST HB_LANG_PT
  REQUEST HB_CODEPAGE_PT850
  HB_LANGSELECT("PT")
  HB_CDPSELECT( "PT850" )
 
  SETMODE(25,80)

  SetColor("W+/B")
 
  CLS

  SetColor("W+/B")
 
  IniciaJanela()


RETURN Nil


FUNCTION IniciaJanela(nLi,nCi,nLf,nCf)

LOCAL oCrt
   HB_Default(@nLi,0)
   HB_Default(@nCi,0)
   HB_Default(@nLf,MaxRow())
   HB_Default(@nCf,MaxCol())
 
   
   cTituloJanela:="Teste com ASORT"
   
   HB_gtInfo(HB_GTI_FONTNAME, "Lucida Console")
   HB_gtInfo(HB_GTI_WINTITLE, cTituloJanela)
   HB_gtInfo(HB_GTI_ICONFILE, "P:\GERAL\HARBOUR\HARB_WIN.ICO" )
   HB_gtInfo(HB_GTI_CLOSABLE, .F. )
   HB_gtInfo(HB_GTI_ISGRAPHIC, .T. )
   HB_gtInfo(HB_GTI_STDERRCON, .T. )
   HB_gtInfo(HB_GTI_COMPATBUFFER, .T. )
   HB_gtInfo(HB_GTI_SPEC, HB_GTS_WNDSTATE, HB_GTS_WS_MAXIMIZED )
   HB_gtInfo(HB_GTI_SPEC, HB_GTS_SHOWWINDOW, SW_NORMAL )
   HB_GtInfo( HB_GTI_MAXIMIZED, .T. )
   
RETURN Nil

FUNCTION HB_GTSYS()
   REQUEST HB_GT_WVT_DEFAULT
   REQUEST HB_GT_WVT
   REQUEST HB_GT_WGU
   REQUEST HB_GT_WVG
RETURN Nil

#pragma BEGINDUMP
   #pragma comment( lib, "shell32.lib" )
   #include "hbapi.h"
   #include <windows.h>
   HB_FUNC( _OPENHELPFILE )
   {
     HINSTANCE hInst;
     LPCTSTR lpPath = (LPTSTR) hb_parc( 1 );
     LPCTSTR lpHelpFile = (LPTSTR) hb_parc( 2 );
     hInst = ShellExecute( 0, "open", lpHelpFile, 0, lpPath, SW_SHOW );
     hb_retnl( (LONG) hInst );
     return;
   }
   
#pragma ENDDUMP

#pragma BEGINDUMP

#include <windows.h>
#include <hbapi.h>

HB_FUNC( GETFILEVERSIONINFO )
{
char * szFile = hb_parc( 1 );
UINT uAction = HB_ISNUM( 2 ) ? hb_parni( 2 ) : 1;
DWORD dwHandle = 0;
DWORD dwSize = GetFileVersionInfoSize( szFile, &dwHandle );
char * szOut = NULL;
BOOL bOk   = FALSE;

if( dwSize )
{
   char * szBlock = ( char * ) hb_xgrab( 255 );
   char * szSubBlock = ( char * ) hb_xgrab( 255 );
   HGLOBAL hMem = GlobalAlloc( GMEM_MOVEABLE, dwSize );
   VS_FIXEDFILEINFO * vsInfo;
   UINT nLen = 0;

   if( hMem )
   {
    LPVOID pMem = GlobalLock( hMem );

    if( pMem && GetFileVersionInfo( szFile, dwHandle, dwSize, pMem ) )
    {
      if( VerQueryValue( pMem, "\\VarFileInfo\\Translation", ( LPVOID * ) &vsInfo, &nLen ) )
      {
       *( LPDWORD ) vsInfo = MAKELONG( HIWORD( *( LPDWORD ) vsInfo ), LOWORD( *( LPDWORD ) vsInfo ) );

       sprintf( szBlock, "\\StringFileInfo\\%08lx\\", *( LPDWORD )( vsInfo ) );

       switch( uAction ) {
         case 1:
          sprintf( szSubBlock, "%s%s", szBlock, "Comments" );
          break;

         case 2:
          sprintf( szSubBlock, "%s%s", szBlock, "CompanyName" );
          break;

         case 3:
          sprintf( szSubBlock, "%s%s", szBlock, "FileDescription" );
          break;

         case 4:
          sprintf( szSubBlock, "%s%s", szBlock, "FileVersion" );
          break;
         case 5:
          sprintf( szSubBlock, "%s%s", szBlock, "InternalName" );
          break;

         case 6:
          sprintf( szSubBlock, "%s%s", szBlock, "LegalCopyright" );
          break;

         case 7:
          sprintf( szSubBlock, "%s%s", szBlock, "LegalTrademarks" );
          break;

         case 8:
          sprintf( szSubBlock, "%s%s", szBlock, "OriginalFilename" );
          break;

         case 9:
          sprintf( szSubBlock, "%s%s", szBlock, "PrivateBuild" );
          break;

         case 10:
          sprintf( szSubBlock, "%s%s", szBlock, "ProductName" );
          break;

         case 11:
          sprintf( szSubBlock, "%s%s", szBlock, "ProductVersion" );
          break;

         case 12:
          sprintf( szSubBlock, "%s%s", szBlock, "SpecialBuild" );
          break;
       }

       if( VerQueryValue( pMem, szSubBlock, ( LPVOID * ) &szOut, &nLen ) )
         bOk = TRUE;

       hb_xfree( szBlock );
       hb_xfree( szSubBlock );
      }

      GlobalUnlock( hMem );
      GlobalFree( hMem );
    }
   }
}

if( bOk )
   hb_retc( szOut );
else
   hb_retc( "" );
}
static void s_doEvents( void )
{
   MSG msg;

   while( PeekMessage( &msg, ( HWND ) NULL, 0, 0, PM_REMOVE ) )
   {
      TranslateMessage( &msg );
      DispatchMessage( &msg );
   };
}

HB_FUNC( HBG_DOEVENTS )
{
   s_doEvents(  );
}

#pragma ENDDUMP

FUNCTION NomeExecutavel(lPath)
LOCAL nPos, cRet
   If Empty(lpath)
      nPos:=RAT(HB_PS(), HB_Argv(0))
      cRet:=SubStr(HB_Argv(0), nPos+1)
   else
      cRet:=HB_Argv(0)
   endif
RETURN cRet

Imagens da execução fica em Initing... e não sai disto.
https://goo.gl/photos/Wqt4d4pkooakxS5cA
https://goo.gl/photos/9PZ4D7rZqdY53wu37

Imagem
Imagem

Hbide, HBDBU r417

MensagemEnviado: 21 Ago 2015 12:34
por janio
Sim é possível. E muitas outras coisas.


Vc pode demonstrar onde faz isso, Itamar? Eh que sou totalmente analfabeto em qualquer IDE, mas se tudo der certo adotarei esta.

Janio

Hbide, HBDBU r417

MensagemEnviado: 21 Ago 2015 12:37
por janio
Desculpe, Itamar!

Vi aqui que clicando com o botao DIREITO em qualquer área do texto, em "Change Theme" eh possivel modificar o que perguntei

Hbide, HBDBU r417

MensagemEnviado: 21 Ago 2015 18:11
por Itamar M. Lins Jr.
Ola!

Tem como criar seu próprio tema, seu plugin, teclas de atalho, etc... eu não fico mexendo nisso, ás vezes eu dou uma fuçada...

Saudações,
Itamar M. Lins Jr.

Hbide, HBDBU r417

MensagemEnviado: 21 Ago 2015 18:36
por asimoes
Poder debugar é muito importante para mim, pode haver necessidade de testar uma função ou procedure, até agora não consegui ver isso funcionando na hbide, alguém sabe como fazer?
Ou tem um exemplo simples para eu testar?

Hbide, HBDBU r417

MensagemEnviado: 21 Ago 2015 19:13
por Itamar M. Lins Jr.
Ola!
Poder debugar é muito importante para mim,


Vc já recompilou todos os fontes com a opção de debug ?

Aqui está funcionando.

Saudações,
Itamar M. Lins Jr.

Hbide, HBDBU r417

MensagemEnviado: 21 Ago 2015 19:23
por Itamar M. Lins Jr.
Ola!
Mais essa tela aqui, eu fiquei clicando no botão "step F8" e ele foi abrindo os fontes sozinho.

Saudações,
Itamar M. Lins Jr.

Hbide, HBDBU r417

MensagemEnviado: 21 Ago 2015 20:06
por asimoes
Itamar,

Quando eu faço o build dá esse erro:

Imagem

Hbide, HBDBU r417

MensagemEnviado: 21 Ago 2015 20:59
por asimoes
Fica dificil sem um tutorial, sinceramente não sei onde estou errando.
Obrigado pelas informações.

Hbide, HBDBU r417

MensagemEnviado: 21 Ago 2015 22:12
por Itamar M. Lins Jr.
Ola!
Vc não está fazendo nada errado.
Foi uma falha minha aqui de não saber criar o pacote da hbide, faltou explicação e colocar no pacote essa libhwgdebug.a

Teste agora com essa lib que estou anexando aqui.
Desculpe a falha.
Lembrando que usei o Mingw 5.1 para criar ela.

Saudações,
Itamar M. Lins Jr.

Hbide, HBDBU r417

MensagemEnviado: 22 Ago 2015 07:49
por asimoes
Bom dia Itamar,

Eu estou usando o harbour fork com mingw 5.1 a lib deve ser copiada para a pasta lib do harbour?

Hbide, HBDBU r417

MensagemEnviado: 22 Ago 2015 07:58
por asimoes
Itamar,

Agora sim,

Muito obrigado, copiei a lib para a pasta lib do harbour e funcionou beleza, mais um adepto da hbide!

:{

Hbide, HBDBU r417

MensagemEnviado: 22 Ago 2015 13:08
por Itamar M. Lins Jr.
Sim, só um comentário.
xDev tem DEBUG ? que eu saiba não tem.
xDev abre/cria/modifica DBF ? que eu saiba não.
xDev tem todos os comandos/funções do [x]Harbour ?
E outras coisas que não tem na xDev.

Eu não mudei p/ HbIde só por causa do Debug, nem tinha isso, e no início a HBIDE tinha muitos BUG´s como hoje ainda tem. Mas é a proposta de melhorias e correções do desenvolvedor da ferramenta que me fez usar ela. Pelo menos uma vez por ano ele pergunta para os usuários o que pode ser melhorado ou corrigido.

Se aparecer coisa melhor, passarei a usar sem problema nenhum.

Saudações,
Itamar M. Lins Jr.

Hbide, HBDBU r417

MensagemEnviado: 22 Ago 2015 17:39
por asimoes
Olá Itamar!

Uma pergunta a lib que você disponibilizou hwgdebug é da versão hwgui-2.19-b4? e compilado com o mingw 5.1?
A versão que você do mingw usa para compilar a hwgui é a mesma da qt?

Hbide, HBDBU r417

MensagemEnviado: 22 Ago 2015 20:45
por Itamar M. Lins Jr.
Não. É o debug feito pelo Alexander, agora tem algumas modificações feitas pelo Pritpal.
C:\hb34\addons\debug>dir
Pasta de C:\hb34\addons\debug

03/03/15  11:01    <DIR>          .
03/03/15  11:01    <DIR>          ..
26/09/14  10:51            13.612 dbgconnect.prg
26/09/14  10:51               718 dbgdop.c
16/11/14  11:41            37.017 debugger.prg
03/03/15  11:01               490 hwgdebug.hbp
               4 arquivo(s)         51.837 bytes



2014-08-31 10:00 UTC-0800 Pritpal Bedi (bedipritpal at hotmail.com)(r342)
  * qtcontribs.hbp
    + Added: debug/hwgdebug.hbp

  + debug
  + debug/dbgconnect.prg
  + debug/dbgdop.c
  + debug/debugger.prg
  + debug/hwgdebug.hbp
    + Added: Alexander Kresin's <alex@kresin.ru> application-side debugger
       library. Many thanks Kresin. You fittingly separated the rectangular
       and non-rectangular code of Harbour's native debugger.
       I added some missing features which were added to Harbour debugger,
       probably, later than Kresin wrote his library.

  + hbide/debugger.prg
  + hbide/debugger.ui
  + hbide/resources/debugger.png
    + Added: Alex <alexeyzapolskiy@gmail.com> written HbIDE specific bridge
       for HWGDebug defined protocol. It was a mammoth work. Thanks Alex.



Depois dessa primeira, aconteceram várias melhorias feitas pelo Pritpal até chegar ao que é hoje.

Saudações,
Itamar M. Lins Jr.

Hbide, HBDBU r417

MensagemEnviado: 22 Ago 2015 20:48
por Itamar M. Lins Jr.
Ola!
A versão que você do mingw usa para compilar a hwgui é a mesma da qt?

Sim, é a mesma versão. O Pripal não gosta não porque não é a padrão e ainda por cima eu uso o fork do Viktor que ele também não dá suporte. Tem uns atritos ai dele com o Viktor.

Saudações,
Itamar M. Lins Jr.

Hbide, HBDBU r417

MensagemEnviado: 22 Ago 2015 21:24
por asimoes
É por isso que eu não estou conseguindo gerar a mesma lib, a sua lib funciona, a que eu estou gerando com a versão padrão do mingw para harbour não.

Hbide, HBDBU r417

MensagemEnviado: 22 Ago 2015 22:16
por asimoes
Itamar,

Baixei o pacote completo da hb_contribs (98 mb) e observei que é compilado com o harbour core 3.2
É uma atualização de 03/agosto
A hwgdebug já vem compilada na pasta lib, além dos fontes que você informou.
Outra coisa a hwgdebug tem estar visivel em alguma pasta lib se não, não funciona, copiei ela para a pasta lib da minha compilação harbour 3.4

Hbide, HBDBU r417

MensagemEnviado: 24 Ago 2015 15:28
por asimoes
Olá Itamar,

Tenho ua pasta include em d:\hinclude

Estou informando no meu hbp

-incpath=d:\hb32fork\hwgui\include;d:\harbour\hinclude;

No meu fonte de teste tenho um header #include "TokenHarbour.ch"

Na compilação com hbide diz: Error F0029 Can't open #include file 'TokenHarbour.ch' ???

Tem algum lugar especifico para dizer onde estão os headers que o projeto precisa?

Hbide, HBDBU r417

MensagemEnviado: 24 Ago 2015 16:47
por Itamar M. Lins Jr.
Ola!
Aqui no meu tenho um arquivo .hbc com mesmo nome do .hbp
Dentro tem isso:
{win}incpaths=c:\devl\hwgui\include;c:\devl\letodb\include;
{win}libpaths=c:\devl\hwgui\lib
{win}libpaths=c:\devl\letodb\lib

{win}gt=gtgui
{win}libs=hwgui hwg_extctrl hbxml procmisc xhb
{win}libs=rddleto


E tenho um arquivo que o hbmk2 chama de nome hbmk.hbm
#
# $Id: hbmk.hbm
#

xhb.hbc
hbssl.hbc
sddodbc.hbc
sddfb.hbc
hbmxml.hbc
hbhpdf.hbc
hbzebra.hbc
hbcurl.hbc
hbnetio.hbc
-mt


Saudações,
Itamar M. Lins Jr.

Hbide, HBDBU r417

MensagemEnviado: 24 Ago 2015 19:55
por asimoes
Itamar,

Muito obrigado pelas dicas, funcionou.

Eu estou muito acostumado a criar tudo em um hbp, fica mais fácil, fiz como você disse e a hbide aceitou todos os meus includes.

Beleza.