Página 3 de 6

Iniciando com HWGUI

Enviado: 20 Set 2020 18:39
por Itamar M. Lins Jr.
Ola!
OwnerButton o CAPTION é TEXT!

Código: Selecionar todos

#xcommand @ <x>,<y> OWNERBUTTON [ <oOwnBtn> ]  ;
            [ OF <oWnd> ]              ;
            [ ID <nId> ]               ;
            [ SIZE <width>, <height> ] ;
            [ BACKCOLOR <bcolor> ]     ;
            [ ON INIT <bInit> ]        ;
            [ ON SIZE <bSize> ]        ;
            [ ON PAINT <bPaint> ]      ;
            [ ON CLICK <bClick> ]      ;
            [ HSTYLES <aStyles,...> ]  ;
            [ <flat: FLAT> ]           ;
            [ <enable: DISABLED> ]     ;
            [ TEXT <cText>             ;
                 [ COLOR <color>] [ FONT <font> ] ;
                 [ COORDINATES  <xt>, <yt>, <widtht>, <heightt> ] ;
            ] ;
            [ BITMAP <bmp>  [<res: FROM RESOURCE>] [<ltr: TRANSPARENT> [COLOR  <trcolor> ]] ;
                 [ COORDINATES  <xb>, <yb>, <widthb>, <heightb> ] ;
            ] ;
            [ TOOLTIP <ctoolt> ]    ;
            [ <lCheck: CHECK> ]     ;
          => ;
    [<oOwnBtn> :=] HOWNBUTTON():New( <oWnd>,<nId>,\{<aStyles>\},<x>,<y>,<width>, ;
          <height>,<bInit>,<bSize>,<bPaint>, ;
          <bClick>,<.flat.>, ;
              <cText>,<color>,<font>,<xt>, <yt>,<widtht>,<heightt>, ;
              <bmp>,<.res.>,<xb>,<yb>,<widthb>,<heightb>,<.ltr.>,<trcolor>, <ctoolt>,!<.enable.>,<.lCheck.>,<bcolor> );
    [; hwg_SetCtrlName( <oOwnBtn>,<(oOwnBtn)> )]
Saudações,
Itamar M. Lins Jr.

Iniciando com HWGUI

Enviado: 20 Set 2020 18:59
por JoséQuintas
Uia....
Só pra dar uma idéia.

Código: Selecionar todos

#include "hbclass.ch"
#include "hwgui.ch"

MEMVAR m_Prog

FUNCTION DoHWGui( cModule, cTitulo )

   LOCAL oFrm

   oFrm := FrmClass():New( cTitulo, cModule, "CIAEPU+-" )
   oFrm:Execute()

   RETURN NIL

FUNCTION pTeshwgui( oFrm )

   ACTIVATE DIALOG oFrm:oFrm

   RETURN Nil
O que a classe faz?
Cria a janela, e coloca os botões que foram indicados.

Código: Selecionar todos

CREATE CLASS FrmClass

   VAR oFrm
   VAR cPRGName
   VAR cOptions

   METHOD New( cTitulo, cModulo, cOptions )
   METHOD CreateButtons()
   METHOD Execute()

   ENDCLASS

METHOD New( cTitulo, cModulo, cOptions ) CLASS FrmClass

   ::cPRGName := cModulo
   ::cOptions := cOptions
   INIT DIALOG ::oFrm TITLE cTitulo AT 20, 0 SIZE 640, 480

   RETURN Self

METHOD Execute() CLASS FrmClass

   ::CreateButtons()

   DO( ::cPRGName, Self )

   RETURN NIL

METHOD CreateButtons() CLASS FrmClass

   LOCAL nRow, nCol, oFont, acOptions := {}, cCaption

   PREPARE FONT oFont NAME "Times New Roman" WIDTH 0 HEIGHT 20 WEIGHT 400

   IF "C" $ ::cOptions
      AAdd( acOptions, "Consulta" )
   ENDIF
   IF "A" $ ::cOptions
      AAdd( acOptions, "Altera" )
   ENDIF
   IF "E" $ ::cOptions
      AAdd( acOptions, "Exclui" )
   ENDIF
   IF "P" $ ::cOptions
      AAdd( acOptions, "Primeiro" )
   ENDIF
   IF "U" $ ::cOptions
      AAdd( acOptions, "Último" )
   ENDIF
   IF "+" $ ::cOptions
      AAdd( acOptions, "Seguinte" )
   ENDIF
   IF "-" $ ::cOptions
      AAdd( acOptions, "Anterior" )
   ENDIF
   nCol := 1
   nRow := 1
   FOR EACH cCaption IN acOptions
      @ nCol, nRow SHADEBUTTON SIZE 90,36 TEXT cCaption FONT oFont EFFECT SHS_METAL PALETTE PAL_METAL
      nCol += 100
      IF nCol > 540
         nCol := 1
         nRow += 40
      ENDIF
   NEXT

   RETURN Nil
O resultado?
O módulo tem o que precisa.
tela.png
Bom.....
o botão inclui executa o método inclui(), o botão altera executa o método altera(), etc.
Basta o módulo ter esses métodos, igual faço com GTWVG.

Depois... no futuro, dá pra fazer o ajuste fino, mas num primeiro momento.... parece que vai deixar a migração extremamente rápida.

Iniciando com HWGUI

Enviado: 20 Set 2020 19:15
por JoséQuintas
Não sei se interessa pra alguém....
28/08/2020 11:15 6.487.984 jpa.exe

20/09/2020 18:55 6.681.512 jpa.exe
Como já uso ícones multiresolução, que são grandes, o EXE tá praticamente igual.
Tá com HWGUI agora.

Iniciando com HWGUI

Enviado: 20 Set 2020 19:22
por Itamar M. Lins Jr.
Ola!
Nos botões, prefira imagens, cores. Evite usar palavras, com o tempo de uso o pessoal vai preferir desenho ou cor. Poupa tempo de ler.
Os icones(desenho/cores) são mais representativos no subconsciente.

Saudações,
Itamar M. Lins Jr.

Iniciando com HWGUI

Enviado: 20 Set 2020 19:29
por JoséQuintas
Tem uma coisa na hwgui que deveriam ter feito faz tempo, igual na GTWVG:

Se indicar ícone que não existe, não colocar nada ou assumir um default, e não dar erro como acontece hoje.

Iniciando com HWGUI

Enviado: 20 Set 2020 19:46
por Itamar M. Lins Jr.
Ola!
Tá começando agora, use utils\bincnt basta apontar onde estão os icones e ele vai criar um container(RC) com os ícones.
Eu já usava .RC mas vou passar a usar o binccnt.exe.

Saudações,
Itamar M. Lins Jr.

Iniciando com HWGUI

Enviado: 20 Set 2020 20:00
por JoséQuintas
Não apareceu imagem.
hwgui.png

Iniciando com HWGUI

Enviado: 20 Set 2020 20:18
por JoséQuintas
O mais próximo que consegui foi este, mas fica doidão.
hwgui.png

Código: Selecionar todos

      @ nCol, nRow ICON IconFromCaption( cCaption) FROM RESOURCE SIZE 55,55

Iniciando com HWGUI

Enviado: 20 Set 2020 20:30
por JoséQuintas
No hicon tem a opção de definir tamanho.
Não resolveu ainda, não aparece.

Código: Selecionar todos

      hIcon := HIcon():AddResource( IconFromCaption( cCaption ), 55, 55 )
      @ nCol, nRow BUTTONEX cCaption ;
         SIZE 55,55 ;
         ICON hIcon ;
         TRANSPARENT

Iniciando com HWGUI

Enviado: 20 Set 2020 20:42
por JoséQuintas
Coloquei pra redimensionar o ícone.
Alterei a variável com handle dos ícones pra classe, pra ver se o problema era a variável ser local.
Sem sucesso também.

Código: Selecionar todos

      AAdd( ::aIconList, HIcon():AddResource( IconFromCaption( cCaption ), 55, 55 ) )
      @ nCol, nRow BUTTONEX cCaption ;
         SIZE 55,55 ;
         ICON Atail( ::aIconList ) ;
         TRANSPARENT

Iniciando com HWGUI

Enviado: 20 Set 2020 21:14
por MSDN
Quintas, siga as orientações do Itamar, vc é fera em GTWVG, mas em HwGUI está começando, e quando a gente está começando tem que ser mais humilde !

Iniciando com HWGUI

Enviado: 20 Set 2020 21:23
por JoséQuintas
MSDN escreveu:Quintas, siga as orientações do Itamar, vc é fera em GTWVG, mas em HwGUI está começando, e quando a gente está começando tem que ser mais humilde !
Apenas estou tentando mostrar um button com ícone.
O que tem de errado nisso?

Código: Selecionar todos

20/09/2020  21:10         3.181.437 ze_resource.o
20/09/2020  21:13        10.727.126 jpa.reso
Já tenho 14MB de resource.
Criar mais 14MB de resource, duplicando tudo, só pra usar o recurso novo, NÃO dá.
Não é questão de humildade, é questão de acrescentar 14MB no EXE pra isso.
hwgui.png
Apareceu alguma coisa com o nice button.
Defini ícones com tamanho 55, e button também com tamanho 55.
Mesmo assim, tá menor que button.

Pensei na ampliação do Windows 10, mas não tem nada a ver.

Iniciando com HWGUI

Enviado: 20 Set 2020 21:24
por MSDN
A questão é que usar botões em HwGUI é diferente de usar em GTWVG, só isso, basta vc esquecer como fazia antes e ver como se faz em HwGUI.
Eu uso MiniGUI, sou acostumado de um jeito, se eu for usar HwGUI vou ter que reaprender algumas coisas, faz parte !

Iniciando com HWGUI

Enviado: 20 Set 2020 21:42
por JoséQuintas
Revi as mensagens, deixei passar o fonte do owner button.
Mesmo problema.

Código: Selecionar todos

      AAdd( ::aIconList, HIcon():AddResource( IconFromCaption( cCaption ), 55, 55 ) )
      @ nCol, nRow OWNERBUTTON SIZE 55, 55 FLAT ;
         BITMAP Atail( ::aIconList ) FROM RESOURCE TRANSPARENT ;
         TOOLTIP cCaption
owner.png

Iniciando com HWGUI

Enviado: 21 Set 2020 04:02
por JoséQuintas
Preguiça... vai o teste assim mesmo.
Comparado com console, e com pouca informação, qualquer coisa fica legal.
hwgui.png