Clipper On Line • Ver Tópico - Combobox não funciona
Mudar para estilo Clássico
Discussão sobre outras linguagens de programação.
Postar uma resposta

Combobox não funciona

29 Jul 2020 19:11

Criei um combobox, mas ao clicar não funciona.

Código:
   VAR Style                 INIT   WIN_WS_CHILD + WIN_WS_BORDER + WIN_WS_TABSTOP + WIN_WS_VSCROLL + CBS_NOINTEGRALHEIGHT + CBS_AUTOHSCROLL + CBS_DROPDOWNLIST
   VAR lSetCallback          INIT .F.
   METHOD AddItem( cText )   INLINE AAdd( ::aComboboxList, cText ), ::SendMessage( CB_ADDSTRING, 0, @::aComboboxList[ Len( ::aComboboxList ) ] )


Já desliguei a captura de evento e alterei o texto pra pointer

Código:
   IF ::lSetCallback
      ::SetWindowProcCallback()  /* Let parent take control of it */
   ENDIF


Os valores estão no combo, conforme altero a opção (SetValue) o texto se altera.
O problema é: clico no scroll, mas não aparece a lista pra selecionar.

Código:
   oControl := wvgtstComboBox():New()
   oControl:Create( , , { -7.5, -43 }, { -6, -17 } )
   AEval( aComboboxList, { | e | oControl:AddItem( e ) } )
   oControl:SetValue( 5 )


O que pode estar errado?

Combobox não funciona

29 Jul 2020 19:37

Aparentemente resolvido.

Desisti do meu, e usei o da GTWVG
Acrescentei uma função a mais pra setar o default, e parece que deu certo.

Código:
CREATE CLASS wvgTstCombobox INHERIT wvgCombobox // INHERIT wvgTstControl

   VAR Type                    INIT WVGCOMBO_DROPDOWNLIST
   METHOD SetValue( nIndex ) INLINE ::SendMessage( CB_SETCURSEL, nIndex - 1, 0 )
   //VAR ClassName             INIT   "COMBOBOX"
   //VAR ObjType               INIT   objTypeComboBox
   //VAR aComboboxList         INIT {}
   //VAR Style                 INIT   WIN_WS_CHILD + WIN_WS_BORDER + WIN_WS_TABSTOP + WIN_WS_VSCROLL + CBS_NOINTEGRALHEIGHT + CBS_AUTOHSCROLL + CBS_DROPDOWNLIST
   //VAR lSetCallback          INIT .F.
   //METHOD AddItem( cText )   INLINE AAdd( ::aComboboxList, cText ), ::SendMessage( CB_ADDSTRING, 0, @::aComboboxList[ Len( ::aComboboxList ) ] )
   //METHOD Clear()            INLINE ::aComboboxList := {}, ::SendMessage( CB_RESETCONTENT, 0, 0 )

   ENDCLASS


combo.png
combo.png (7.89 KiB) Visualizado 617 vezes
Postar uma resposta