Página 4 de 6
Iniciando com HWGUI
Enviado: 21 Set 2020 04:33
por JoséQuintas
Ou aproveitando o espaço....
Código: Selecionar todos
#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
Iniciando com HWGUI
Enviado: 21 Set 2020 15:45
por Itamar M. Lins Jr.
Ola!
Falta os ajustes. STYLES!
Código: Selecionar todos
@ 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
E os possíveis LIMITES nos tamanhos dos GETs.
Saudações,
Itamar M. Lins Jr.
Iniciando com HWGUI
Enviado: 21 Set 2020 18:17
por Fernando queiroz
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
Iniciando com HWGUI
Enviado: 21 Set 2020 21:01
por asimoes
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.
Iniciando com HWGUI
Enviado: 21 Set 2020 21:41
por Itamar M. Lins Jr.
Ola!
isso é GAMBIARRRA, na 2.17 não tem isso.
Sabe corrigir isso ?
Saudações,
Itamar M. Lins Jr.
Iniciando com HWGUI
Enviado: 21 Set 2020 22:00
por JoséQuintas
E não é que achei um uso pro FOR/EACH composto.
Código: Selecionar todos
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
Iniciando com HWGUI
Enviado: 21 Set 2020 22:20
por JoséQuintas
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.
Iniciando com HWGUI
Enviado: 21 Set 2020 23:29
por Itamar M. Lins Jr.
Ola!
Por costume, tem aquilo também de deixar a digitação ativa em destaque.
Mudar a cor do FOCO.
Código: Selecionar todos
hwg_SetColorinFocus(.T.) //,0,11193702)
hwg_SetToolTipBalloon(.T.)
Saudações,
Itamar M. Lins Jr.
Iniciando com HWGUI
Enviado: 22 Set 2020 06:34
por JoséQuintas
Esqueci do principal:
habilitar/desabilitar digitação, botões, etc.
Deveria ter um exemplo de um uso desses, um cadastro por exemplo.
Iniciando com HWGUI
Enviado: 22 Set 2020 06:46
por JoséQuintas
o exemplo tab tem dialog em resource, mas mingw não compila o resource.
qual a alternativa?
Iniciando com HWGUI
Enviado: 22 Set 2020 06:52
por Itamar M. Lins Jr.
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.
Código: Selecionar todos
Function Off_Controls
oGet1:Disable()
oGet2:Disable()
IF XYZ
oBotao_01:Disable()
...
Saudações,
Itamar M. Lins Jr.
Iniciando com HWGUI
Enviado: 22 Set 2020 06:56
por Itamar M. Lins Jr.
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.
Iniciando com HWGUI
Enviado: 22 Set 2020 07:02
por Itamar M. Lins Jr.
Ola!
Código: Selecionar todos
@ 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.
Iniciando com HWGUI
Enviado: 22 Set 2020 07:27
por Itamar M. Lins Jr.
Ola!
Exemplo com TAB e DESLIGANDO os controles:
Código: Selecionar todos
#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.
Iniciando com HWGUI
Enviado: 22 Set 2020 09:36
por asimoes
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