remover/Destruir o browse/controle

Projeto HwGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

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

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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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: 3107
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: 20415
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP
Curtiram: 1 vez

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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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: 20415
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP
Curtiram: 1 vez

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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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