Clipper On Line • Ver Tópico - HWGUI++ para Harbour++

HWGUI++ para Harbour++

Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.

Moderador: Moderadores

 

HWGUI++ para Harbour++

Mensagempor marcosgambeta » 21 Jun 2022 14:49

HWGUI++ é uma adaptação da HWGUI corrente, para ser utilizada em conjunto com o Harbour++.

Link do projeto no GitHub:
https://github.com/harbourplusplus/hwguipp

Seu desenvolvimento acompanhará o progresso do Harbour++, mas as alterações na HWGUI original serão monitoradas para manter um certo nível de sincronia.

Estando com o Harbour++ compilado, basta executar o comando abaixo para compilar a HWGUI++:

hbmk2 hwguipp.hbp


E para compilar usando a HWGUI++:

hbmk2 programa.prg hwguipp.hbc


Sugiro colocar a pasta hwguipp na pasta addons do Harbour++, para não ser preciso indicar a localização do arquivo hwguipp.hbc.
Atenciosamente,
Marcos Antonio Gambeta
marcosgambeta
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 318
Data de registro: 16 Jun 2005 22:53
Curtiu: 2 vezes
Mens.Curtidas: 40 vezes

HWGUI++ para Harbour++

Mensagempor JoséQuintas » 21 Jun 2022 16:55

Se achar interessante:

https://github.com/JoseQuintas/hwgui

Não tem nada diferente, porque é sincronizado com hwgui em mão dupla.
O que altera aí vai pra lá, e o que altera lá vém pra aí.
E sempre reseto para a posição oficial quando puxo alterações.

uso
git svn fetch
pra puxar do source-forge
E depois a opção reset main to here, descartando qualquer coisa diferente.

Se altero, uso
git svn update
pra enviar pro source-forge as alterações.

E por esse motivo, não faço nada diferente do oficial, porque vai entrar lá com certeza.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18150
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1215 vezes

HWGUI++ para Harbour++

Mensagempor marcosgambeta » 22 Jun 2022 06:30

JoséQuintas escreveu:Se achar interessante:

https://github.com/JoseQuintas/hwgui


Obrigado.

Vai ser útil no monitoramento das alterações.
Atenciosamente,
Marcos Antonio Gambeta
marcosgambeta
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 318
Data de registro: 16 Jun 2005 22:53
Curtiu: 2 vezes
Mens.Curtidas: 40 vezes

HWGUI++ para Harbour++

Mensagempor marcosgambeta » 18 Jul 2022 07:13

Por descuido meu, ficou faltando o arquivo hbutton.prg no repositório. Agora está presente.

Caso tenham algum problema na compilação, basta informar. Será tratado o mais breve possível.
Atenciosamente,
Marcos Antonio Gambeta
marcosgambeta
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 318
Data de registro: 16 Jun 2005 22:53
Curtiu: 2 vezes
Mens.Curtidas: 40 vezes

HWGUI++ para Harbour++

Mensagempor marcosgambeta » 30 Jul 2022 04:02

Iniciei a implementação de uma sintaxe alternativa para a criação de objetos, conforme exemplo abaixo:

#include "hwgui.ch"

PROCEDURE Main()

   LOCAL oDialog

   WITH OBJECT oDialog := HDialog():new()
      :title   := "Test"
      :nWidth  := 800
      :nHeight := 600
      :activate()
   ENDWITH

RETURN


Código equivalente usando comandos:

#include "hwgui.ch"

PROCEDURE Main()

   LOCAL oDialog

   INIT DIALOG oDialog TITLE "Test" SIZE 800, 600

   ACTIVATE DIALOG oDialog

RETURN


Conforme a implementação avançar, testes serão adicionados na pasta 'tests'.
Atenciosamente,
Marcos Antonio Gambeta
marcosgambeta
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 318
Data de registro: 16 Jun 2005 22:53
Curtiu: 2 vezes
Mens.Curtidas: 40 vezes

HWGUI++ para Harbour++

Mensagempor marcosgambeta » 30 Jul 2022 04:20

Para evitar código duplicado, a utilização das funções hwg_bitand e hwg_bitor foi descontinuada em favor das funções hb_bitand e hb_bitor, respectivamente.

As funções que forem descontinuadas não serão removidas na série corrente (1.x.x). Elas continuarão presentes, para não afetar o código dos usuários, e sua remoção poderá ocorrer na próxima série (2.x.x), dando assim tempo para os ajustes necessários.

Mudanças assim estarão registradas no arquivo CHANGES.md.
Atenciosamente,
Marcos Antonio Gambeta
marcosgambeta
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 318
Data de registro: 16 Jun 2005 22:53
Curtiu: 2 vezes
Mens.Curtidas: 40 vezes

HWGUI++ para Harbour++

Mensagempor marcosgambeta » 30 Jul 2022 10:34

Junto com a sintaxe alternativa, outro recurso que receberá atenção será a possibilidade de trabalhar com herança conforme exemplo abaixo:

#include "hwgui.ch"

PROCEDURE Main()

   LOCAL oDialog

   WITH OBJECT oDialog := MyDialog():new()
      :title   := "Minha janela de diálogo"
      :nWidth  := 640
      :nHeight := 480
      :myMethod()
      :activate()
   ENDWITH

RETURN

#include "hbclass.ch"

CLASS MyDialog FROM HDialog

   METHOD myMethod

ENDCLASS

METHOD myMethod() CLASS MyDialog

   hwg_MsgInfo("Executando método MyMethod", "Aviso")

RETURN NIL
Atenciosamente,
Marcos Antonio Gambeta
marcosgambeta
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 318
Data de registro: 16 Jun 2005 22:53
Curtiu: 2 vezes
Mens.Curtidas: 40 vezes

HWGUI++ para Harbour++

Mensagempor marcosgambeta » 30 Jul 2022 16:11

Mais dois exemplos envolvendo a sintaxe alternativa e herança:

#include "hwgui.ch"

PROCEDURE Main()

   LOCAL oDialog
   LOCAL oButtonOk
   LOCAL oButtonCancel

   WITH OBJECT oDialog := HDialog():new()

      :title   := "Test"
      :nWidth  := 640
      :nHeight := 480

      WITH OBJECT oButtonOk := HButton():new()
         :title  := "&OK"
         :nLeft  := 20
         :nTop   := 20
         :bClick := {||hwg_MsgInfo("OK clicked", "Information")}
      ENDWITH

      WITH OBJECT oButtonCancel := HButton():new()
         :title  := "&Cancel"
         :nLeft  := 120
         :nTop   := 20
         :bClick := {||hwg_MsgInfo("Cancel clicked", "Information")}
      ENDWITH

      :activate()

   ENDWITH

RETURN


#include "hwgui.ch"

PROCEDURE Main()

   LOCAL oDialog

   WITH OBJECT oDialog := MyDialog():new()
      :title   := "My dialog window"
      :nWidth  := 640
      :nHeight := 480
      :myMethod()
      :activate()
   ENDWITH

RETURN

#include "hbclass.ch"

CLASS MyDialog FROM HDialog

   DATA oButtonOK
   DATA oButtonCancel

   METHOD myMethod

ENDCLASS

METHOD myMethod() CLASS MyDialog

   WITH OBJECT ::oButtonOK := HButton():new()
      :title  := "&OK"
      :nLeft  := 20
      :nTop   := 20
      :bClick := {||hwg_MsgInfo("OK clicked", "Information")}
   ENDWITH

   WITH OBJECT ::oButtonCancel := HButton():new()
      :title  := "&Cancel"
      :nLeft  := 120
      :nTop   := 20
      :bClick := {||hwg_MsgInfo("Cancel clicked", "Information")}
   ENDWITH

RETURN NIL


As modificações feitas na classe HButton serão reproduzidas nos outros controles.
Atenciosamente,
Marcos Antonio Gambeta
marcosgambeta
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 318
Data de registro: 16 Jun 2005 22:53
Curtiu: 2 vezes
Mens.Curtidas: 40 vezes

HWGUI++ para Harbour++

Mensagempor alxsts » 30 Jul 2022 17:34

Olá!

Parabéns Marcos! Belos trabalhos!
[]´s
Alexandre Santos (AlxSts)
alxsts
Colaborador

Colaborador
 
Mensagens: 2945
Data de registro: 12 Ago 2008 15:50
Cidade/Estado: São Paulo-SP-Brasil
Curtiu: 21 vezes
Mens.Curtidas: 248 vezes

HWGUI++ para Harbour++

Mensagempor JoséQuintas » 31 Jul 2022 11:57

marcosgambeta escreveu:Junto com a sintaxe alternativa, outro recurso que receberá atenção será a possibilidade de trabalhar com herança


Só estranhei.
Na prática a atual permite isso.
E essa é minha idéia de uso, assim defino os meus visuais de forma padrão.
Mas com a hwgui original, isso vai ser aproveitado mais na criação do que durante o uso, exceto se criar novos métodos.
Ainda prefiro o redimensionamento da WVG, e vou tentar levar isso pra HWGUI.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18150
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1215 vezes

HWGUI++ para Harbour++

Mensagempor marcosgambeta » 07 Ago 2022 13:57

Depois de compilar o Harbour++ no Fedora 36, testei a HWGUI++. Foi preciso uma série de ajustes, mas no final funcionou corretamente.

Segue o mesmo procedimento usado no Windows:

Compilar a HWGUI++:

hbmk2 hwguipp.hbp


Compilar programas/projetos:

hbmk2 programa hwguipp.hbc


hbmk2 projeto.hbp hwguipp.hbc


Qualquer erro ou problema na utilização, basta registrar no link abaixo:

https://github.com/harbourplusplus/hwguipp/issues

A mensagem pode ser em português.

Na medida do possível, as duas versões (GTK+ e WinAPI) serão mantidas em sincronia.
Atenciosamente,
Marcos Antonio Gambeta
marcosgambeta
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 318
Data de registro: 16 Jun 2005 22:53
Curtiu: 2 vezes
Mens.Curtidas: 40 vezes




Retornar para Contribuições, Dicas e Tutoriais

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 6 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro