Problema com combobox

Projeto MiniGui - 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

Problema com combobox

Mensagem por JoséQuintas »

Estou com um problema estranho.
Num teste isolado funciona, o que dá a impressão de ser fonte.
Ao mesmo tempo, HMG3 funciona com o mesmo fonte, o que dá a impressão de fonte correto.
OOHG também não funciona, então confunde.
É a questão de enable/disable

Criação genérica

Código: Selecionar todos

         gui_ComboCreate( iif( ::lWithTab, oTab, ::xDlg ), @aItem[ CFG_FCONTROL ], ;
            nRow2, nCol2, nLen, ::nLineHeight, aItem[ CFG_COMBOLIST ] )
Criação pra minigui (todas)

Código: Selecionar todos

FUNCTION gui_ComboCreate( xDlg, xControl, nRow, nCol, nWidth, nHeight, aList )

   IF Empty( xControl )
      xControl := gui_newctlname( "CBO" )
   ENDIF
   DEFINE COMBOBOX ( xControl )
      PARENT ( xDlg )
      ROW nRow
      COL nCol
      VALUE 1
      WIDTH nWidth
      HEIGHT nHeight
      ITEMS aList
   END COMBOBOX

   RETURN Nil
rotina que habilita, genérica

Código: Selecionar todos

            gui_ControlEnable( ::xDlg, aItem[ CFG_FCONTROL ], .T. )
         IF aItem[ CFG_CTLTYPE ] == TYPE_COMBOTEXT
            gui_MsgBox( "Combo normal" )
         ENDIF
rotina da minigui (pra todas)

Código: Selecionar todos

FUNCTION gui_ControlEnable( xDlg, xControl, lEnable )

   SetProperty( xDlg, xControl, "ENABLED", lEnable )

   RETURN Nil
xDlg contém nome, xControl contém nome
aItem[ CFG_FCONTROL ] é o elemento que contém o nome do controle/combobox
Na criação é passado por referência, porque a criação gera o nome

Como eu disse, em HMG3 funciona, mas não funciona em HMG Extended e OOHG (em hwgui também, mas é outra história)
Isso indica que as rotinas genéricas estão corretas, repassando nome correto
Coloquei a mensagem no ponto que habilita pra confirmar se estava passando lá (nem precisava, porque hmg3 funciona)

Num teste isolado com hmg extend funcionou, pra complicar ainda mais pra entender.

A única diferença entre o teste isolado é que aqui está dentro de uma tab.

Alguma idéia ?

Notas:
- apelei pra adicionar uma chamada pra REDRAW, mas sem sucesso.
- está igual aos textbox, pra eles funciona.
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

Problema com combobox

Mensagem por JoséQuintas »

Rotina completa habilita/desabilita

Código: Selecionar todos

METHOD EditOn() CLASS frm_Class

   LOCAL aItem, oFirstEdit, lFound := .F.

   FOR EACH aItem IN ::aControlList
      IF aItem[ CFG_CTLTYPE ] == TYPE_HWGUIBUG
            gui_ControlEnable( ::xDlg, aItem[ CFG_FCONTROL ], .T. )
      ELSEIF hb_AScan( { TYPE_EDIT, TYPE_COMBOTEXT }, { | e | e == aItem[ CFG_CTLTYPE ] } ) != 0
         IF aItem[ CFG_ISKEY ]
            gui_ControlEnable( ::xDlg, aItem[ CFG_FCONTROL ], .F. )
         ELSE
            gui_ControlEnable( ::xDlg, aItem[ CFG_FCONTROL ], .T. )
         IF aItem[ CFG_CTLTYPE ] == TYPE_COMBOTEXT
            gui_MsgBox( "Combo normal" )
         ENDIF
            IF ! lFound
               lFound := .T.
               oFirstEdit := aItem[ CFG_FCONTROL ]
            ENDIF
         ENDIF
      ENDIF
   NEXT
   ::ButtonSaveOn()
   gui_SetFocus( ::xDlg, oFirstEdit )

   RETURN Nil
pra combobox e textbox entra na mesma opção.
O teste de CFG_ISKEY é pra ver se é campo chave ou não, por exemplo se é IDCLIENTE, não interfere no combobox, apenas desativa alterar a IDCLIENTE.
Tem o teste se é combobox ;e pra mostrar mensagem apenas no caso de combobox, senão seriam várias.
test.png
Igual pra todas as miniguis, só hmg3 funciona.
Se houvesse erro nas outras partes, daria erro em todas, no restante é o mesmo fonte pra todas.
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

Problema com combobox

Mensagem por JoséQuintas »

enabled.png

Código: Selecionar todos

         IF aItem[ CFG_CTLTYPE ] == TYPE_COMBOTEXT
            gui_MsgBox( "Combo normal" )
            gui_MsgBox( "Getproperty:" + iif( GetProperty( ::xDlg, aItem[ CFG_FCONTROL ], "ENABLED" ), "true", "false" ) )
         ENDIF
Ficou mais interessante ainda
Até o teste indica que está habilitada.
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

Problema com combobox

Mensagem por JoséQuintas »

Removi tudo, deixei apenas criação, e está desabilitado.

Sem chance....

A possibilidade que vejo é precisar da janela MAIN no aplicativo.
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

Problema com combobox

Mensagem por JoséQuintas »

Vou testar ainda:

Código: Selecionar todos

FUNCTION gui_ComboCreate( xDlg, xControl, nRow, nCol, nWidth, nHeight, aList )

   IF Empty( xControl )
      xControl := gui_newctlname( "CBO" )
   ENDIF
   DEFINE COMBOBOX ( xControl )
      PARENT ( xDlg )
      ROW nRow
      COL nCol
      VALUE 1
      WIDTH nWidth
      HEIGHT nHeight
      ITEMS aList
   END COMBOBOX
   hb_MemoWrit( "d:\temp\test.txt", ;
      [DEFINE COMBOBOX ( "] + xControl + [" )] + hb_Eol() + ;
      [   PARENT ( "] + xDlg + [" )] + hb_Eol() + ;
      [   ROW ] + Ltrim( Str( nRow ) ) + hb_Eol() + ;
      [   COL ] + Ltrim( Str( nCol ) ) + hb_Eol() + ;
      [   VALUE 1] + hb_Eol() + ;
      [   WIDTH ] + Ltrim( Str( nWidth ) ) + hb_Eol() + ;
      [   HEIGHT ] + Ltrim( Str( nHeight ) ) + hb_Eol() + ;
      [   ITEMS ] + hb_ValToExp( aList ) + hb_Eol() + ;
      [END COMBOBOX] + hb_Eol() )

   RETURN Nil
Gerou este fonte:

Código: Selecionar todos

DEFINE COMBOBOX ( "CBO0000000027" )
   PARENT ( "TAB0000000015" )
   ROW 187
   COL 316
   VALUE 1
   WIDTH 120
   HEIGHT 20
   ITEMS {"ACxxxxxxxxxxxxxx", "RS", "SP", "RJ", "PR", "RN"}
END COMBOBOX
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

Problema com combobox

Mensagem por JoséQuintas »

Código: Selecionar todos

/*
 * MINIGUI - Harbour Win32 GUI library Demo
 *
 */

#include "minigui.ch"

Function Main

   SET WINDOW MAIN OFF
	DEFINE WINDOW Main ;
		AT 0,0 ;
		WIDTH 1024 ;
		HEIGHT 718 ;
		TITLE 'ComboBox Demo'

		@ 20,20 COMBOBOX Combo_1 ;
			WIDTH 100 ;
			ITEMS { '1 | Uno' , '2 | Dos' } ;
			VALUE 1 ;
			ON ENTER SetProperty( "form_1", "CBO0000000027", "enabled", iif( Main.Combo_1.VALUE == 1, .T., .F. ) ) ;
			UPPERCASE ;
			ITEMHEIGHT 21 ;
			FONT 'Courier' SIZE 12

      DEFINE TAB ( "TAB0000000015" ) ;
         PARENT ( "MAIN" ) ;
         AT 50, 0 ;
         WIDTH 800 ;
         HEIGHT 600
      END TAB

      PAGE "A"

         DEFINE COMBOBOX ( "CBO0000000027" )
            PARENT ( "TAB0000000015" )
            ROW 187
            COL 316
            VALUE 1
            WIDTH 120
            HEIGHT 20
            ITEMS {"ACxxxxxxxxxxxxxx", "RS", "SP", "RJ", "PR", "RN"}
         END COMBOBOX

      END PAGE

	END WINDOW

	CENTER WINDOW Main

	ACTIVATE WINDOW Main

RETURN Nil
combobug.png
Quem puder compilar e testar....
De repente é só aqui.
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

Problema com combobox

Mensagem por JoséQuintas »

AFFFFFFF

Não pode definir tamanho.
Ao definir o tamanho, não tem espaço pra lista, esse foi o problema.

Na HMG3 funciona normal.

E eu pensando ser por conta de SET WINDOW MAIN OFF, e outras coisas mais....
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