remover/Destruir o browse/controle

Projeto HwGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

remover/Destruir o browse/controle

Mensagem por JoséQuintas »

Código: Selecionar todos

#include "hwgui.ch"
#define DEFAULT_FONTNAME "MS Sans Serif"

PROCEDURE Main

   LOCAL oFont
   LOCAL xDlg, cTitle := "test"
   LOCAL aList := { "um", "dois", "tres" }

   oFont := HFont():Add( DEFAULT_FONTNAME, 0, -11 )
   INIT DIALOG xDlg ;
      CLIPPER ;
      FONT oFont ;
      NOEXIT ;
      TITLE     cTitle ;
      AT       0, 0 ;
      SIZE      1024, 768
      // BACKCOLOR COLOR_WHITE

   ACTIVATE DIALOG xDlg CENTER ON ACTIVATE { || BrowseMenuBr( xDlg, 10, 10, aList ) }

   RETURN

STATIC FUNCTION BrowseMenuBr( xDlg, nRow, nCol, aList )

   LOCAL xBrowse, aBrowseList := {}, cItem

   hb_Default( @nRow, 0 )
   hb_Default( @nCol, 0 )
   FOR EACH cItem IN aList
      AAdd( aBrowseList, { cItem } )
   NEXT

   @ nCol, nRow BROWSE xBrowse OF xDlg ;
      ARRAY ;
      SIZE 100, (Len(aList)+2)*20 ;
      STYLE WS_BORDER + WS_VSCROLL + WS_HSCROLL ;
      ON CLICK { || xBrowse:End(), xDlg:Refresh() }

   hwg_CREATEARLIST( xBrowse, aBrowseList )

   xBrowse:aColumns[1]:Heading := "titulo"
   xBrowse:aColumns[1]:length := 50

   RETURN Nil
Estou tentando destruir o browse, mas ele continua lá vazio.
Tem como remover/destruir um controle da dialog?
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

remover/Destruir o browse/controle

Mensagem por alxsts »

Olá!

Pelo que consta na documentação da HWGUI, o método End() é interno. Deve ter funções específicas do controle.
JoséQuintas escreveu:Estou tentando destruir o browse, mas ele continua lá vazio.
Tem como remover/destruir um controle da dialog?
Não fica clara a tua intenção ao "destruir" um controle. Se for para que ele desapareça da tela, no caso do controle Browse, use o método hide:

Código: Selecionar todos

oBrw:hide
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

remover/Destruir o browse/controle

Mensagem por JoséQuintas »

alxsts escreveu:Não fica clara a tua intenção ao "destruir" um controle. Se for para que ele desapareça da tela, no caso do controle Browse, use o método hide:
Destruir é jogar fora mesmo, ficou inútil, precisa ser descartado.

No Windows seria enviar a mensagem WM_CLOSE pra janela do controle.
Mas é lógico, também precisa destruir os objetos criados pela hwgui.

A intenção é criar um sistema de menus usando o browse.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"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 do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

remover/Destruir o browse/controle

Mensagem por JoséQuintas »

Parece que deu certo.
Precisa testar mais pesado.

Código: Selecionar todos

STATIC FUNCTION Destroy( xDlg, xBrowse )

   LOCAL hWnd

   hWnd := xBrowse:Handle
   xBrowse:End()
   hwg_SendMessage( hWnd, WM_CLOSE, 0, 0 )
   xDlg:Refresh()
   (xDlg)

   RETURN Nil

Código: Selecionar todos

#include "hwgui.ch"
#define DEFAULT_FONTNAME "MS Sans Serif"

PROCEDURE Main

   LOCAL oFont
   LOCAL xDlg, cTitle := "test"
   LOCAL aList := { "um", "dois", "tres" }

   oFont := HFont():Add( DEFAULT_FONTNAME, 0, -11 )
   INIT DIALOG xDlg ;
      CLIPPER ;
      FONT oFont ;
      NOEXIT ;
      TITLE     cTitle ;
      AT       0, 0 ;
      SIZE      1024, 768
      // BACKCOLOR COLOR_WHITE

   ACTIVATE DIALOG xDlg CENTER ON ACTIVATE { || BrowseMenuBr( xDlg, 10, 10, aList ) }

   RETURN

STATIC FUNCTION BrowseMenuBr( xDlg, nRow, nCol, aList )

   LOCAL xBrowse, aBrowseList := {}, cItem

   hb_Default( @nRow, 0 )
   hb_Default( @nCol, 0 )
   FOR EACH cItem IN aList
      AAdd( aBrowseList, { cItem } )
   NEXT

   @ nCol, nRow BROWSE xBrowse OF xDlg ;
      ARRAY ;
      SIZE 100, (Len(aList)+2)*20 ;
      STYLE WS_BORDER + WS_VSCROLL + WS_HSCROLL ;
      ON CLICK { || Destroy( xDlg, xBrowse ) }

   hwg_CREATEARLIST( xBrowse, aBrowseList )

   xBrowse:aColumns[1]:Heading := "titulo"
   xBrowse:aColumns[1]:length := 50

   RETURN Nil

STATIC FUNCTION Destroy( xDlg, xBrowse )

   LOCAL hWnd

   hWnd := xBrowse:Handle
   xBrowse:End()
   hwg_SendMessage( hWnd, WM_CLOSE, 0, 0 )
   xDlg:Refresh()
   (xDlg)

   RETURN Nil
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder