Clipper On Line • Ver Tópico - Iniciando com HWGUI

Iniciando com HWGUI

Projeto HwGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

 

Iniciando com HWGUI

Mensagempor JoséQuintas » 21 Set 2020 04:33

Ou aproveitando o espaço....

hwgui.png


#include "hbclass.ch"
#include "hwgui.ch"
#include "hwg_extctrl.ch"
#include "dbstruct.ch"

MEMVAR m_Prog

FUNCTION DoHWGui( cModule, cTitulo )

   LOCAL oFrm

   oFrm := FrmClass():New( cTitulo, cModule, "CIAEPU+-" )
   use \jpa\cordeiro\jpcontabil
   oFrm:Execute()
   use

   RETURN Nil

FUNCTION pTeshwgui( oFrm )

   LOCAL aStru, aValues := {}, oElement, xValue, nRow, nCol

   aStru := dbStruct()
   FOR EACH oElement IN aStru
      AAdd( aValues, FieldGet( oElement:__EnumIndex ) )
   NEXT
   nRow := 80
   nCol := 5
   FOR EACH xValue IN aValues
      IF nCol + 100 + aStru[ xValue:__EnumIndex, DBS_LEN ] * 12 + 50> 790
         nCol := 5
         nRow += 26
      ENDIF
      @ nCol, nRow SAY aStru[ xValue:__EnumIndex, DBS_NAME ] SIZE 100, 25
      @ nCol + 110, nRow GET xValue SIZE aStru[ xvalue:__EnumIndex, DBS_LEN ] * 12, 25
      nCol += 100 + aStru[ xValue:__EnumIndex, DBS_LEN ] * 12 + 50
   NEXT

   ACTIVATE DIALOG oFrm:oFrm

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

Iniciando com HWGUI

Mensagempor Itamar M. Lins Jr. » 21 Set 2020 15:45

Ola!
Falta os ajustes. STYLES!
@ x,y GET oGet VAR xVar size nComp,nLarg STYLE ES_RIGHT //Para números
@ x,y GET oGet VAR xVar size nComp,nLarg STYLE ES_LEFT //Para caracteres

E os possíveis blocos com
VALID {||fFuncaoXYZ()}

E os possíveis LIMITES nos tamanhos dos GETs.
MAXLENGTH 60


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

Iniciando com HWGUI

Mensagempor Fernando queiroz » 21 Set 2020 18:17

e não esquece um campo fantasma depois do ultimo GET para poder validar ele, pois o ultimo GET não sofre validação ai o fantasma passa a ser o ultimo

@ 18,680 GET oPhantom VAR cPHANTOM SIZE 0,0
HARBOUR 3.2, HWGUI 2.23 B3, SEFAZCLASS, PDFClass, ADO + MariaDB/MySQL, RMChart
Fernando queiroz
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 737
Data de registro: 12 Nov 2014 23:41
Cidade/Estado: Porto Alegre/RS
Curtiu: 12 vezes
Mens.Curtidas: 58 vezes

Iniciando com HWGUI

Mensagempor asimoes » 21 Set 2020 21:01

Fernando queiroz escreveu:e não esquece um campo fantasma depois do ultimo GET para poder validar ele, pois o ultimo GET não sofre validação ai o fantasma passa a ser o ultimo

isso é GAMBIARRRA, na 2.17 não tem isso.
â–ºHarbour 3.x | Minigui xx-x | HwGuiâ—„
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Iniciando com HWGUI

Mensagempor Itamar M. Lins Jr. » 21 Set 2020 21:41

Ola!
isso é GAMBIARRRA, na 2.17 não tem isso.

Sabe corrigir isso ?

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

Iniciando com HWGUI

Mensagempor JoséQuintas » 21 Set 2020 22:00

E não é que achei um uso pro FOR/EACH composto.

FUNCTION pTeshwgui( oFrm )

   LOCAL aStru, aValues := {}, oElement, xValue, nRow, nCol, oField

   aStru := dbStruct()
   FOR EACH oElement IN aStru
      AAdd( aValues, FieldGet( oElement:__EnumIndex ) )
   NEXT
   nRow := 80
   nCol := 5
   FOR EACH xValue, oField IN aValues, aStru
      IF nCol + 100 + oField[ DBS_LEN ] * 12 + 50> 790
         nCol := 5
         nRow += 26
      ENDIF
      @ nCol, nRow SAY oField[ DBS_NAME ] SIZE 100, 25
      @ nCol + 110, nRow GET xValue SIZE oField[ DBS_LEN ] * 12, 25 ;
         STYLE iif( oField[ DBS_TYPE ] == "N", ES_RIGHT, ES_LEFT ) ;
         MAXLENGTH oField[ DBS_LEN ]
      nCol += 100 + oField[ DBS_LEN ] * 12 + 50
   NEXT

   ACTIVATE DIALOG oFrm:oFrm

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

Iniciando com HWGUI

Mensagempor JoséQuintas » 21 Set 2020 22:20

Por costume, tem aquilo também de deixar a digitação ativa em destaque.

Pra menu, por enquanto só imagino usar browse, seria o mais próximo de prático, ao contrário do menu do Windows.
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: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Iniciando com HWGUI

Mensagempor Itamar M. Lins Jr. » 21 Set 2020 23:29

Ola!
Por costume, tem aquilo também de deixar a digitação ativa em destaque.

Mudar a cor do FOCO.

hwg_SetColorinFocus(.T.) //,0,11193702) 
hwg_SetToolTipBalloon(.T.)


FUNCTION hwg_SetColorinFocus( lDef, tColor, bColor )


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

Iniciando com HWGUI

Mensagempor JoséQuintas » 22 Set 2020 06:34

Esqueci do principal:
habilitar/desabilitar digitação, botões, etc.

Deveria ter um exemplo de um uso desses, um cadastro por exemplo.
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: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Iniciando com HWGUI

Mensagempor JoséQuintas » 22 Set 2020 06:46

o exemplo tab tem dialog em resource, mas mingw não compila o resource.
qual a alternativa?
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: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Iniciando com HWGUI

Mensagempor Itamar M. Lins Jr. » 22 Set 2020 06:52

Ola!
habilitar/desabilitar digitação, botões, etc.


Essa é a mais simples, fácil de fazer.
Objeto:Disable()

Depois dele está apresentado na DIALOG/Window.

O pessoal está querendo ESCREVER os controles já com os EVENTOS aplicados, isso está errado.
Primeiro desenhamos eles nas JANELAS(Dialogs/window) bunitinho... Depois é que vamos DESLIGAR/LIGAR eles.

Function Off_Controls
oGet1:Disable()
oGet2:Disable()
IF XYZ
oBotao_01:Disable()
...


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

Iniciando com HWGUI

Mensagempor Itamar M. Lins Jr. » 22 Set 2020 06:56

Ola!
o exemplo tab tem dialog em resource, mas mingw não compila o resource.
qual a alternativa?

Compila .RC Esse RC que vc está se referindo é um antigão da BORLAND.

Use como todo mundo usa, escreve ele na DIALOG/WINDOW.

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

Iniciando com HWGUI

Mensagempor Itamar M. Lins Jr. » 22 Set 2020 07:02

Ola!

   @ 010,080 TAB oTab ITEMS {} SIZE 750,450 OF oDlg
   BEGIN PAGE "TAB 1" OF oTAB
   END PAGE OF oTAB
   BEGIN PAGE "TAB 2" OF oTAB
   END PAGE OF oTAB


É um OBJETO(controle) como qualquer outro! Tem como saber até em qual TAB o usuário está.
Quando tem muita coisa(gets) o recurso é usar TAB. Até para organizar melhor o CADASTRO.
TAB Endereços, TAB DOCUMENTOS... do cliente.

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

Iniciando com HWGUI

Mensagempor Itamar M. Lins Jr. » 22 Set 2020 07:27

Ola!
Exemplo com TAB e DESLIGANDO os controles:
#include "hwgui.ch"

Function Main
Local oDlg, oSay, oBtn1, oBtn2, oOwBtn
Local oBtn3, oPreco, nPreco:=123456789.1234, oBtn4

   INIT DIALOG oDlg TITLE "EVENTOS NO DIALOG" AT 0,0 SIZE 800,600 ;
     On INIT {||hwg_msginfo("Bloco do Inicio")} ;
     On EXIT {||oDlg:Hide(),hwg_msginfo("Bloco do EXIT")}

   @ 010,010 TAB oTab ITEMS {} SIZE 750,450 OF oDlg
   BEGIN PAGE "TAB 1" OF oTAB

      @ 300,040 SAY oSay CAPTION "Click no X para fechar" size 300,30

      @ 300,100 button oBtn1 Caption "SAIR Close" size 200,50 ON CLICK {||oDlg:Close()}
      @ 300,200 button oBtn2 Caption "SAIR EndDialog" size 200,50 ON CLICK {||hwg_EndDialog()}

      @ 300,300 OWNERBUTTON oOwBtn SIZE 200,50 TEXT "OwnerButton SAIR"
   END PAGE OF oTAB

   BEGIN PAGE "TAB 2" OF oTAB

      @ 300,100 button oBtn3 Caption "Ligar BUTTON e GET" size 200,50 ON CLICK {||oPreco:Enable(),oBtn4:Enable()}

      @ 300,200 GET oPreco VAR nPreco PICTURE "@e 999,999,999.9999"  size 150,30

      @ 300,300 BUTTON oBtn4 CAPTION "Desligar BOTAO e GET" size 200,50 ON CLICK {||oPreco:Disable(),oBtn4:Disable()}

   END PAGE OF oTAB

    oDlg : bActivate:={||oDlg:Show(), oOwBtn:Disable(), hwg_msginfo("Bloco do Activate")}

   ACTIVATE DIALOG oDlg CENTER
Return Nil

É só compilar e testar.

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

Iniciando com HWGUI

Mensagempor asimoes » 22 Set 2020 09:36

Itamar M. Lins Jr. escreveu:Sabe corrigir isso ?


É comparando HEdit da 2.17 com a atual, mas o ideal é o Alexander mexer nisso, se não acaba fazendo mer**, porque antes não precisa colocar esse "fantasma" e agora tem que colocar, dá a impressão que parte do código ficou perdido, enfim, se eu tivesse todo o conhecimento dessa lib me atreveria fazer funcionar e sairia da 2.17
â–ºHarbour 3.x | Minigui xx-x | HwGuiâ—„
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Anterior Próximo



Retornar para HwGui

Quem está online

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