Clipper On Line • Ver Tópico - GuiServer Hwgui + Harbour = Novidade!

GuiServer Hwgui + Harbour = Novidade!

Projeto HwGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

 

GuiServer Hwgui + Harbour = Novidade!

Mensagempor Itamar M. Lins Jr. » 15 Nov 2018 19:42

Ola!
To lendo... Tentando entender o que é isso.

Aqui tem mais informações. http://www.kresin.ru/en/guisrv.html

Hello all,

I want to tell you about my new Harbour + HwGUI project.
It is GuiServer - a special tool that makes it relatively easy to implement GUI frameworks for different programming languages. It works as a GUI service, which receive tcp/ip connection from a program, written on any language, and executes it commands - creates windows, controls, etc. The interesting possibility is that GuiServer and a main program, which gets from him the GUI, may run on different computers in a network.

GuiServer on github: https://github.com/alkresin/guiserver
GuiServer page: http://www.kresin.ru/en/guisrv.html
The first GUI framework, which uses the GuiServer, is for Golang: https://github.com/alkresin/external
The first application, written with this framework - ETutor, https://github.com/alkresin/etutor. It is the interactive Golang tutorial, an analogue of the HwGUI Tutor.

An interesting point is that ithe GuiServer may be used not only for Golang, Python, etc. programmers to provide for them GUI, but, on the contrary, for Harbour programmers to give them opportunities of other languages.

For example, you write a Golang program, which includes such a main function:

func main() {
   if egui.Init("") != 0 {
      return
   }
   egui.OpenMainForm("forms/main.xml")
   egui.Exit()
}

This function runs the GuiServer and force it to open and show a main window form, created with the HwGUI Designer. All other code implementing the program logic, may be in this and other forms and written on Harbour. But this code may call functions from a connected Golang program, which realizes those things, which Golang does better than Harbour - from web pages parsing to handling of MongoDB.

Regards, Alexander.



Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes

GuiServer Hwgui + Harbour = Novidade!

Mensagempor susviela@bol.com.br » 15 Nov 2018 19:52

Interessante, já tinha dado uma lida nesse projeto.

Mas como me parece que o Designer não estava tendo atualização, não me interessei muito... Mas o projeto promete embora pareça que uma outra linguagem de programação seja necessária.
.
.
"E quando você perder o controle, colherá o que plantou."
=========================================
Carlos Alberto Nunes #Susviela
Site: https://www.PowerInformatica.com.br
=========================================
Blog xBase: https://programandoxbase.wordpress.com/
Blog TI: https://susviela.wordpress.com

( #ProgramandoxBase #AllxBase )
Avatar de usuário

susviela@bol.com.br
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 236
Data de registro: 30 Jun 2017 11:17
Cidade/Estado: São José / SC
Curtiu: 153 vezes
Mens.Curtidas: 24 vezes

GuiServer Hwgui + Harbour = Novidade!

Mensagempor JoséQuintas » 16 Nov 2018 12:27

Pelo que entendi... é quase como um acesso remoto, onde o programa vai se comunicar com o servidor.
Ao passar comandos de abrir/fechar janelas, etc... o programa vai desenhar tudo, por isso poderia ser qualquer linguagem, e por isso seria rápido.
Mas não entendi onde hwgui entra nisso.
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: 18011
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

GuiServer Hwgui + Harbour = Novidade!

Mensagempor JoséQuintas » 16 Nov 2018 12:37

susviela@bol.com.br escreveu:Mas como me parece que o Designer não estava tendo atualização, não me interessei muito..


hwgui.png
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: 18011
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

GuiServer Hwgui + Harbour = Novidade!

Mensagempor Itamar M. Lins Jr. » 16 Nov 2018 20:41

Ola!
Mas não entendi onde hwgui entra nisso.

Esse eu entendi.
Preciso de um exemplo usando Harbour ou PHP para ver como é.
Mas no caso ai, a Hwgui é quem desenha as telas. No Windows ou no Linux. Vc faz as telas usando o Designer que vai gerar um XML esse XML vc chama de qualquer linguagem. Agora COMO é que faz isso em PHP não faço a menor ideia. Nem com o Harbour. Sem exemplo fica difícil de entender.
Esse GuiServer é um programa em Harbour com Hwgui, escutando alguma porta TCP tipo APACHE, só não como como usamos. rsrsr

Exemplo com a tal GoLang linguagem da GOOGLE.
iPort := 3101
sServer := "guiserver"
   sIp := "127.0.0.1"
   sLog := ""


O XML deve ser nesse padrão que o Designer cria. Quem usa Hwgui do Designer vai está em casa, eu faço na mão direto no PRG, o Designer SALVA em PRG ou XML.

<?xml version="1.0" encoding="UTF-8"?>
<part class="form">
  <style>
    <property name="Geometry">{300,14,300,340}</property>
    <property name="Caption">[Get a value]</property>
    <property name="Font">
      <font name="MS Sans Serif" width="0" height="-13" weight="400" charset="204"/>
    </property>
    <property name="lClipper">.F.</property>
    <property name="lExitOnEnter">.F.</property>
    <property name="Variables">{oTimer}</property>
  </style>
  <method name="onFormInit">
    <![CDATA[e1:= "Dialog from prg"
e2:= Date()
e3:= 10320.54
e4:= "11222333444455"
e5 := 10320.54
hwg_SetDlgKey(,4,0x72, Codeblock( 'MsgInfo("Shift-F3")' ) )
]]>
  </method>
  <method name="onDlgInit">
    <![CDATA[oTimer := HTimer():New(oDlg,,1000,{||oSayT:SetText(Time() )} )]]>
  </method>
  <method name="onDlgExit">
    <![CDATA[oTimer:End()
hwg_Msginfo( e1 + chr(10) + chr(13) + Dtoc(e2) + chr(10) + chr(13) ;
    + Str(e3) + chr(10) + chr(13) + e4 + chr(10) + chr(13) ;
    + Str(e5) + chr(10) + chr(13), "Results:" )
Return .T.]]>
  </method>
  <part class="label">
    <style>
      <property name="Geometry">{20,10,260,22}</property>
      <property name="Name">[oLabel1]</property>
      <property name="Caption">[Input something:]</property>
    </style>
  </part>
  <part class="editbox">
    <style>
      <property name="Geometry">{20,35,260,26}</property>
      <property name="cPicture">[XXXXXXXXXXXXXXX]</property>
      <property name="varName">[e1]</property>
    </style>
  </part>
  <part class="editbox">
    <style>
      <property name="Geometry">{20,65,260,26}</property>
      <property name="varName">[e2]</property>
    </style>
  </part>
  <part class="editbox">
    <style>
      <property name="Geometry">{20,95,260,26}</property>
      <property name="varName">[e3]</property>
    </style>
  </part>
  <part class="editbox">
    <style>
      <property name="Geometry">{20,125,260,26}</property>
      <property name="cPicture">[@R 99.999.999/9999-99]</property>
      <property name="varName">[e4]</property>
    </style>
  </part>
  <part class="editbox">
    <style>
      <property name="Geometry">{20,155,260,26}</property>
      <property name="cPicture">[@e 999,999,999.99]</property>
      <property name="varName">[e5]</property>
    </style>
  </part>
  <part class="button">
    <style>
      <property name="Geometry">{20,240,100,32}</property>
      <property name="Caption">[Ok]</property>
    </style>
    <method name="onClick">
      <![CDATA[hwg_EndDialog()]]>
    </method>
  </part>
  <part class="button">
    <style>
      <property name="Geometry">{180,240,100,32}</property>
      <property name="Caption">[Cancel]</property>
    </style>
    <method name="onClick">
      <![CDATA[hwg_EndDialog()
]]>
    </method>
  </part>
  <part class="label">
    <style>
      <property name="Geometry">{100,285,100,22}</property>
      <property name="Name">[oSayT]</property>
      <property name="Caption">[]</property>
      <property name="TextColor">16744448</property>
      <property name="BackColor">8177244</property>
      <property name="Border">.T.</property>
      <property name="Justify">[Center]</property>
    </style>
  </part>
</part>


Tem exemplos para Harbour usando Funções parecidas da Hwgui só que eGUI_ Na hwgui usamos HWG_, ainda estou juntando as peças do quebra cabeças.
Não tô vendo vantagem para quem usa Hwgui.
Veja no exemplo do XML os nomes das Variáveis [e1], [e2]... Nisso qualquer linguagem manipula essas variáveis.

Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes




Retornar para HwGui

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 8 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