Página 2 de 6

Iniciando com HWGUI

Enviado: 20 Set 2020 15:57
por JoséQuintas

Código: Selecionar todos

METHOD Activate( lNoModal, lMaximized, lMinimized, lCentered, bActivate ) CLASS HDialog

   LOCAL oWnd, hParent
   //LOCAL aCoors, aRect

   IF bActivate != Nil
      ::bActivate := bActivate
   ENDIF

   hwg_CreateGetList( Self )
   hParent := Iif( ::oParent != Nil .AND. ;
      __ObjHasMsg( ::oParent, "HANDLE" ) .AND. !Empty( ::oParent:handle ), ;
      ::oParent:handle, Iif( ( oWnd := HWindow():GetMain() ) != Nil,  ;
      oWnd:handle, hwg_Getactivewindow() ) )
A Dialog fica presa a uma janela ativa.

Iniciando com HWGUI

Enviado: 20 Set 2020 16:02
por Itamar M. Lins Jr.
Ola!
Precisa do objeto pai. No caso uma window/dialog. Deve está como WVG... O objeto principal(GTWVG), por isso não aparece nada.

Saudações,
Itamar M. Lins Jr.

Iniciando com HWGUI

Enviado: 20 Set 2020 16:20
por JoséQuintas
hwgui.png
Aqui ok, cada janela uma thread.
Tudo normal, só a sequência pra fechar que fica chato.

É começar assim mesmo.

Só mais um último teste, que lembrei de uma coisa...

Iniciando com HWGUI

Enviado: 20 Set 2020 16:36
por JoséQuintas
Testei com outras GTs: GTWGU e GTGUI.

Bom, sem problemas, o usuário vai poder abrir várias janelas.
Se abrir muitas vai se perder, mas por enquanto não tem nenhuma kkkkk

Até lá, talvez tenha outra Main()

Iniciando com HWGUI

Enviado: 20 Set 2020 17:25
por JoséQuintas

Código: Selecionar todos

#include "hwgui.ch"

STATIC nWindow := 0

FUNCTION pTeshwgui

   LOCAL oTela, oFont, nRow, nCol

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

   nWindow += 1
   INIT WINDOW oTela TITLE "Shade Buttons " + Str( nWindow, 3 ) ;
      AT 20,0 SIZE 640,480 SYSCOLOR COLOR_3DLIGHT+1

   FOR nCol= 100 TO 400 STEP 100
      FOR nRow = 40 TO 400 STEP 40
         @ nRow, nCol SHADEBUTTON SIZE 100,36 TEXT Str( nRow, 3 ) + Str( nCol, 3 ) FONT oFont EFFECT SHS_METAL PALETTE PAL_METAL
      NEXT
   NEXT

   ACTIVATE WINDOW oTela

   RETURN Nil
Não tem jeito, só o desenvolvedor mesmo.
Agora com Window.
Ok, a primeira vez abre normalmente, depois nunca mais.
Acho que ninguém nunca usou hwgui sem existir uma janela Main().

Pergunta:

Qual a diferença entre Dialog e Window? precisa das duas?
A Dialog não faz tudo que a Window faz?

Iniciando com HWGUI

Enviado: 20 Set 2020 17:29
por JoséQuintas
Alterando pra dialog ok.

Iniciando com HWGUI

Enviado: 20 Set 2020 17:44
por asimoes
JoséQuintas escreveu:Alterando pra dialog ok.
Isso eu tentei, inclusive tem um post meu questionando isso, o problema é o tipo da janela que que é MAIN, com CHILD ou DIALOG pode abrir quantas vezes quiser a mesma janela na thread.

Iniciando com HWGUI

Enviado: 20 Set 2020 17:44
por Itamar M. Lins Jr.
Ola!
Com Window o povo usa/usava as "WINDOWS CHILD" que ficava dentro da outra(abaixo);
Eu prefiro as DIALOGS.
Acho que ninguém nunca usou hwgui sem existir uma janela Main().
Tenho vários exemplos com dialogs puros.
A MAIN sempre irá existir dentro do projeto, com MENUS, Background...
Por isso eu vejo como melhor opção a MAIN ser com a Hwgui e as outras sendo WVG/WVW...

Saudações,
Itamar M. Lins Jr.

Iniciando com HWGUI

Enviado: 20 Set 2020 17:52
por JoséQuintas
Amiguinhos do céu, nem te conto.....
Tudo bem que em GUI isso normalmente não se faz, deixar todas as janelas com o mesmo tamanho....

Código: Selecionar todos

FUNCTION DoPrg( cModule, cTitulo, p1, p2, p3 )

   LOCAL mHrInic //, oStatusbar
   PRIVATE m_Prog

   m_Prog := cModule
   hb_gtReload( "WVG" )
   IF "HWGUI" $ cModule
      AppInitSets( .F. )
      DoHWGui( cModule, cTitulo, p1, p2, p3 )
   ELSE
      HB_GtInfo( HB_GTI_WINTITLE, cTitulo )
      AppInitSets()
   // oStatusbar := wvgStatusBar():New( wvgSetAppWindow(), , , { -2, -2 } , , .T. ):Create()
      SetColor( SetColorNormal() )
      CLS
      SayTitulo( cTitulo )
      @ MaxRow() - 2, 0 TO MaxRow() - 2, MaxCol() COLOR SetColorTraco()
      mHrInic := Time()
      Do( cModule, p1, p2, p3 )
      LogDeUso( mHrInic, cModule )
   //  HB_SYMBOL_UNUSED( oStatusbar )
   ENDIF

   RETURN NIL
Como dá pra perceber acima, em GTWVG eu crio a janela e já coloco o título.
O próprio menu já faz tudo.

Dá pra fazer igual em HWGUI?
Yes

Código: Selecionar todos


#include "hwgui.ch"

MEMVAR m_Prog

FUNCTION DoHWGui( cModule, cTitulo )

   LOCAL oTela

   m_Prog := cModule
   INIT DIALOG oTela TITLE cTitulo AT 20, 0 SIZE 640, 480
   Do( cModule, oTela )

   RETURN NIL

FUNCTION pTeshwgui( oTela )

   PutButtons()

   ACTIVATE DIALOG oTela

   RETURN Nil

STATIC FUNCTION PutButtons()

   LOCAL nRow, nCol, oFont

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

   FOR nCol= 100 TO 400 STEP 100
      FOR nRow = 40 TO 400 STEP 40
         @ nCol, nRow SHADEBUTTON SIZE 90,36 TEXT Str( nRow, 3 ) + Str( nCol, 3 ) FONT oFont EFFECT SHS_METAL PALETTE PAL_METAL
      NEXT
   NEXT

   RETURN Nil
Em GTWVG também tenho uma classe que monta as telas de cadastro, os botões, etc.
O fonte acima mostra que isso é possível.

Então.... teoricamente.... tá quase tudo pronto, falta só SAY e GET (e browse)

Iniciando com HWGUI

Enviado: 20 Set 2020 17:59
por Claudio Soto
En Windows un dialogo es una ventana temporaria que se utiliza para recibir la entrada de datos por parte del usuario, es una ventana que normalmente no tiene un boton para minimizar ni maximizar, y puede o no ser modal. En cambio un window es algo mas amplio con mas opciones, son las ventanas de la mayoria de las aplicaciones y son simpre no modal.
Son ej de dialogos, las cajas con mensaje ok,cancel,etc. Las cajas para abrir y gravar archivos, para seleccionar un color o una fuente de letra, etc.
Pero en la practica a veces si cumple con lo que el usuario necesita se usan en forma indistinta un dialog o un windows.

Iniciando com HWGUI

Enviado: 20 Set 2020 18:14
por MSDN
Dá pra fazer igual em HWGUI?
Yes
é sério que vc se espantou com isso ?

Iniciando com HWGUI

Enviado: 20 Set 2020 18:14
por JoséQuintas
Não encontrei exemplo pra button.
Queria fazer do jeito que a GTWVG não deixa, já comentei por aqui.
icone.png
Prefiro button ao invés de toolbar.
Acaba ficando mais flexível até pra redimensionar.
Agora com a imagem certa.

Iniciando com HWGUI

Enviado: 20 Set 2020 18:25
por Itamar M. Lins Jr.
Ola!
Eu mesmo não uso toolbutton
Tem um exemplo no TUTOR que é o que uso. TOP PANEL com OnwnerButtons.

Código: Selecionar todos

   ADD TOP PANEL oPanelMain TO oFormMain HEIGHT 70
Vai criar uma faixa no top da window MAIN.

Código: Selecionar todos

   INIT WINDOW oFormMain MAIN APPNAME "XYZ" FONT oFontMain ;
   TITLE "SISTEMA XYZ S/A "  ;
   AT 0,0 SIZE PosX,PosY-30 ICON oIconEXE STYLE WS_POPUP +  WS_CAPTION + WS_SYSMENU ;
   MENUPOS 3 ; //Vai abrir na posição 3
   BACKGROUND BITMAP oBmp 
   ADD TOP PANEL oPanelMain TO oFormMain HEIGHT 70
   MENU OF oFormMain

      MENU TITLE "&Arquivos"
         MENUITEM "&Fornecedores"       ID 110  ACTION {||Fornecedores()}
...
Aqui os botões da BARRA

Código: Selecionar todos

Function EscolhePerfil(cPerfil,oPanel,oTempoAviso)
...
   oImgEstoque      := hbitmap():AddResource( 'IMG_ESTOQUE' )

      @ 000,1 OWNERBUTTON OF oPanel ON CLICK {||Estoque()} ;
          SIZE 58,68 FLAT TEXT "Estoque" COORDINATES 0,53,50,50 FONT oFontBarra ;
          BITMAP oImgEstoque FROM RESOURCE TRANSPARENT COORDINATES 0,0,58,58 TOOLTIP "Arquivo do Estoque"
Saudações,
Itamar M. Lins Jr.

Iniciando com HWGUI

Enviado: 20 Set 2020 18:28
por JoséQuintas
Aqui no button não vejo opção de ícone

Código: Selecionar todos

#xcommand @ <x>,<y> BUTTON [ <oBut> CAPTION ] <caption> ;
            [ OF <oWnd> ]              ;
            [ ID <nId> ]               ;
            [ SIZE <width>, <height> ] ;
            [ COLOR <color> ]          ;
            [ BACKCOLOR <bcolor> ]     ;
            [ ON INIT <bInit> ]        ;
            [ ON SIZE <bSize> ]        ;
            [ ON PAINT <bDraw> ]       ;
            [ ON CLICK <bClick> ]      ;
            [ STYLE <nStyle> ]         ;
            [ FONT <oFont> ]           ;
            [ TOOLTIP <ctoolt> ]
o ícone é uma opção, mas não tem caption

Código: Selecionar todos

#xcommand @ <x>,<y> ICON [ <oIco> SHOW ] <icon> ;
            [<res: FROM RESOURCE>]     ;
            [ OF <oWnd> ]              ;
            [ ID <nId> ]               ;
            [ SIZE <width>, <height> ] ;
            [ ON INIT <bInit> ]        ;
            [ ON SIZE <bSize> ]        ;
            [ ON CLICK <bClick> ]      ;
            [ ON DBLCLICK <bDblClick> ];
            [ TOOLTIP <ctoolt> ]   

Iniciando com HWGUI

Enviado: 20 Set 2020 18:36
por Itamar M. Lins Jr.
Ola!
A Hwgui tem BUTTON, BUTTONEX e OwnerButton. ButtonEX tem imagem, BUTTON não. OwnerButton tem imagem mas não recebe FOCO.

Saudações,
Itamar M. Lins Jr.