Página 1 de 1

HWGUI com gtwvg

Enviado: 09 Nov 2021 17:07
por JoséQuintas

Código: Selecionar todos

PROCEDURE PTESHWGUIBrowse( cModule, cTitle, ... )

   LOCAL cnSQL := ADOLocal(), oBrowseList

   WITH OBJECT cnSQL
      :Execute( "SELECT * FROM JPCIDADE" )
      oBrowseList := { ;
         { "IDCIDADE", { || Str( :Number( "IDCIDADE" ), 6 ) } }, ;
         { "NOME", { || :String( "CINOME", 60 ) } }, ;
         { "UF", { || :String( "CIUF", 2 ) } } }
      hwguiBrowse( cTitle, cnSQL, oBrowseList )
      MsgExclamation( :String( "CINOME" ) )
      :CloseRecordset()
   ENDWITH

   ( cModule )

   RETURN

FUNCTION HwguiBrowse( cTitle, cnSQL, oBrowseList )

   LOCAL oDlg, oBrowse, cFilter := ""

//   INIT WINDOW oDlgPesquisa TITLE cTitle AT 9, 0 SIZE AppWidth(), AppHeight()
   INIT DIALOG oDlg AT 0, 0 SIZE AppWidth() , AppHeight() TITLE cTitle

   @ 1, 1 BROWSE ARRAY oBrowse ;
      SIZE AppWidth() - 10, AppHeight() - 10 STYLE WS_BORDER + WS_VSCROLL + WS_HSCROLL + DS_CENTER ;
      ON CLICK { || hwg_EndDialog( oDlg:Handle ) }
   oBrowse:aArray := cnSQL
   BrowseSet( oBrowse, oBrowseList, oDlg, @cFilter )

   ACTIVATE DIALOG oDlg CENTER

   RETURN Nil
No primeiro módulo eu consulto o MySQL para o browse, chamo a dialog com browse, e no retorno pego o que interessa e fim.

Isso é normal na HWGUI, ou só quando usa GTWVG junto?

HWGUI com gtwvg

Enviado: 09 Nov 2021 17:36
por JoséQuintas
hwgui.png
A resolver:

- Deixar janela hwgui do mesmo tamanho, e até mesma posição da janela GTWVG
- Sair do browse com clique esquerdo do mouse
- Não deixar redimensionar

HWGUI com gtwvg

Enviado: 09 Nov 2021 19:21
por JoséQuintas
Um resolvido.
Na parte de criar janelas:

Código: Selecionar todos

      GtSetupFont()
      GtSetupPalette()
      CLS
      AppWindowRect(99)
e a função:

Código: Selecionar todos

FUNCTION AppWindowRect( nValue )

   STATIC AppWindowRect := {}

   hb_Default( @nValue, 0 )
   IF Empty( AppWindowRect ) .OR. nValue == 99
      AppWindowRect := { 0, 0, hb_gtInfo( HB_GTI_SCREENWIDTH ), hb_gtInfo( HB_GTI_SCREENHEIGHT ) }
   ENDIF
   IF nValue >= 1 .AND. nValue <= 4
      RETURN AppWindowRect[ nValue ]
   ENDIF

   RETURN AppWindowRect
O ponto importante aí é: tem que pegar o tamanho quando existe janela, e não no módulo da hwgui, que usa janela invisível.
Posição nem importa, só o tamanho mesmo.

No módulo hwgui:

Código: Selecionar todos

   INIT DIALOG oDlg ;
      AT AppWindowRect( 1 ), AppWindowRect( 2 ) SIZE AppWindowRect( 3 ), AppWindowRect( 4 ) ;
      TITLE cTitle
A GTWVG é quem manda. HWGUI só vai usar igual.
Talvez eu veja depois pra posicionar, mas o CENTER por enquanto serve.

HWGUI com gtwvg

Enviado: 09 Nov 2021 19:26
por JoséQuintas
Falta ainda:

Testar a DIALOG em REMOTEAPP.