Componente COMBOBOX tem limite ?
Moderador: Moderadores
Componente COMBOBOX tem limite ?
Pessoal,
Alguém saberia me dizer se o componente COMBOBOX tem limite para popular ?
Porque eu estou tentando popular um combo com os município do estado do Rio de Janeiro, tem um total de 92 mas não mostra todos, mas o Len de aItems mostre
92.
Outra coisa, tem como limpar o COMBOBOX, como se faz no no componente LISTBOX com o método Clear() ?
Alguém saberia me dizer se o componente COMBOBOX tem limite para popular ?
Porque eu estou tentando popular um combo com os município do estado do Rio de Janeiro, tem um total de 92 mas não mostra todos, mas o Len de aItems mostre
92.
Outra coisa, tem como limpar o COMBOBOX, como se faz no no componente LISTBOX com o método Clear() ?
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Componente COMBOBOX tem limite ?
Descobri como limpar um COMBOBOX, agora só resta saber dessa limitação na exibição.
Código: Selecionar todos
hwg_Sendmessage( ThisForm:oComboUF:handle, CB_RESETCONTENT, 0, 0 )
ThisForm:oComboUF:aItemsBound := {}
hwg_Comboaddstring( ThisForm:oComboUF:handle, "" )
ThisForm:oComboUF:Refresh()
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Componente COMBOBOX tem limite ?
Correção do exemplo anterior:
Código: Selecionar todos
hwg_Sendmessage( ThisForm:oComboUF:handle, CB_RESETCONTENT, 0, 0 )
ThisForm:oComboUF:aItems := {} //Para COMBOBOX de 1 elemento
ThisForm:oComboUF:aItemsBound := {} //Para COMBOBOX de 2 elementos, AddItem
hwg_Comboaddstring( ThisForm:oComboUF:handle, Nil )
ThisForm:oComboUF:Refresh()
ThisForm:oComboUF:AddItem("RJ", "RIO DE JANEIRO")
ThisForm:oComboUF:SetItem(1) // Para mostrar o primeiro item do combobox
ThisForm:oComboUF:Refresh()
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Componente COMBOBOX tem limite ?
Interessante... parecido com GTWVG.... rs
Só não implementei o reset.
Só não implementei o reset.
Código: Selecionar todos
CREATE CLASS wvgTstCombobox INHERIT wvgtstControl
VAR ClassName INIT "COMBOBOX"
VAR ObjType INIT objTypeComboBox
VAR Style INIT WIN_WS_CHILD + WIN_WS_BORDER + WIN_WS_GROUP + CBS_DROPDOWNLIST // WIN_WS_TABSTOP +
METHOD AddItem( cText ) INLINE ::SendMessage( CB_ADDSTRING, 0, cText )
METHOD SetValue( nIndex ) INLINE ::SendMessage( CB_SETCURSEL, nIndex - 1, 0 )
ENDCLASS
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/
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/
Componente COMBOBOX tem limite ?
resolvido com DISPLAYCOUNT 10, vai limitar 10 items por vez na visualização
Resolvi o problema usando o designer, muito bom
Código: Selecionar todos
@ 042,022 GET COMBOBOX oComboCidades ;
VAR cComboCidades ;
ITEMS {} ;
TEXT ;
SIZE 110,24 ;
ON CHANGE {|| SetCidade() } ;
DISPLAYCOUNT 10
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Componente COMBOBOX tem limite ?
Agora tem... rs
Achei melhor chamar de clear(), porque Reset() poderia parecer que tá resetando tudo e não apenas o texto.
Mas não achei na API Windows aonde limitar a altura, pelo menos numa procura rápida.
Código: Selecionar todos
METHOD Clear() INLINE ::SendMessage( CB_RESETCONTENT, 0, 0 )
Mas não achei na API Windows aonde limitar a altura, pelo menos numa procura rápida.
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/
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/
Componente COMBOBOX tem limite ?
Pra não ficar replicando código, criei o método Clear() na classe HComboBox
Para minha versão modificada da HwGui 2.17
Para minha versão modificada da HwGui 2.17
Código: Selecionar todos
METHOD Clear() CLASS HComboBox
IF Len( ::aItems ) != 0 .OR. Len( ::aItemsBound ) != 0
hwg_Sendmessage( ::handle, CB_RESETCONTENT, 0, 0 )
IF Len( ::aItems ) != 0
::aItems := {}
ENDIF
IF Len( ::aItemsBound ) != 0
::aItemsBound := {}
ENDIF
hwg_Comboaddstring( ::handle, Nil )
::Refresh()
ENDIF
RETURN Nil
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Componente COMBOBOX tem limite ?
Quintas
Olhando o código da HComboBox, não sei se vai te ajudar
hwg_Sendmessage( ::handle, CB_SETITEMHEIGHT, - 1, ::nHeightBox )
Olhando o código da HComboBox, não sei se vai te ajudar
hwg_Sendmessage( ::handle, CB_SETITEMHEIGHT, - 1, ::nHeightBox )
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Componente COMBOBOX tem limite ?
Descobri como redimensionar o COMBOBOX
//hwg_Movewindow( ::handle, ::nLeft, ::nTop, ::nWidth, ::nHeight )
hwg_Movewindow( ThisForm:oComboCidade:handle, 502, 22, 256, 150 )
::nHeight = altura
//hwg_Movewindow( ::handle, ::nLeft, ::nTop, ::nWidth, ::nHeight )
hwg_Movewindow( ThisForm:oComboCidade:handle, 502, 22, 256, 150 )
::nHeight = altura
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Componente COMBOBOX tem limite ?
é exatamente a solução.asimoes escreveu:Olhando o código da HComboBox, não sei se vai te ajudarhwg_Sendmessage( ::handle, CB_SETITEMHEIGHT, - 1, ::nHeightBox )
SendMessage é da API Windows.
É indicar o Handle, o comando, e os parâmetros, como foi feito aí.
Na GTWVG a mesma coisa, a diferença é que existe o método SendMessage() na janela base de tudo.
Ao usar o método ::SendMessage() do controle, ele já sabe qual é seu próprio Handle, então economiza parâmetros no fonte.
Se fizerem isso na HWGUI, economiza parâmetros em tudo que é lugar.
Ao invés de hmg_SendMessage( nHandle, ... ), seria controle:SendMessage( ... )
É que pra quem mexe com linguagem C, fonte misturado C + PRG, pode atrapalhar usar cada vez de um jeito, então acabaram optando por usar sempre igual, deve ser isso.
Código: Selecionar todos
METHOD WvgWindow:sendMessage( nMessage, nlParam, nwParam )
RETURN wapi_SendMessage( ::hWnd, nMessage, nlParam, nwParam )
Nesse caso, dá até pra deixar igual na HWGUI e GTWVG, o que sugere, mesmo que pequena, uma padronização entre as duas.
E usando hbwin que centraliza tudo que se refere a Windows, e está padronizada pra PRG, inclusive nos parâmetros.
Traduzindo: se criar esse sendmessage() como método na hwgui, o fonte do controle fica igual na hwgui e gtwvg. (dessa parte pelo menos)
Disso que comento também: com parte do fonte padronizado, podemos inventar algo mais, nem importa que usamos LIBs diferentes.
E principalmente se pudesse padronizar isso no Xharbour... na contrib de windows...
Menos trabalho pros desenvolvedores e mais recursos pra nós. Todos ganham.
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/
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

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
Componente COMBOBOX tem limite ?
Olá!
Muito bom! Com uma pesquisa letra-a-letra, se é que ainda não tem, ficaria perfeito.
Muito bom! Com uma pesquisa letra-a-letra, se é que ainda não tem, ficaria perfeito.
[]´s
Alexandre Santos (AlxSts)
Alexandre Santos (AlxSts)
Componente COMBOBOX tem limite ?
O componente já faz pesquisa por letra inicial.alxsts escreveu:Muito bom! Com uma pesquisa letra-a-letra, se é que ainda não tem, ficaria perfeito.
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Componente COMBOBOX tem limite ?
Tem como fazer pesquisa no COMBOBOX, só funciona como EDIT
No terceiro digito se achar, completa a caixa de edição com o texto achado
No terceiro digito se achar, completa a caixa de edição com o texto achado
Código: Selecionar todos
@ 502,022 GET COMBOBOX oComboCidade ;
VAR cComboCidade ;
ITEMS {} ;
EDIT ;
SIZE 256,24 ;
DISPLAYCOUNT 10 ;
ON INTERACTIVECHANGE {|value,This| Pesquisa( value, This ) }
FUNCTION Pesquisa( value, This )
LOCAL cTexto, nPos
cTexto := Trim( Upper( This:GetText() ) )
nPos := aScan( This:aItems, {| a | a = cTexto } )
IF nPos > 0 .and. cTexto = Left( This:aItems[nPos], 3 )
This:Refresh()
This:SetItem(nPos)
ENDIF
RETURN Nil
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
Componente COMBOBOX tem limite ?
Olá!
Bacana. Mas este EDIT permite que se altere os itens do Combobox?
Bacana. Mas este EDIT permite que se altere os itens do Combobox?
[]´s
Alexandre Santos (AlxSts)
Alexandre Santos (AlxSts)
Componente COMBOBOX tem limite ?
Não, é opcional
Para modificar:
cTexto := Trim( Upper( This:GetText() ) )
This:SETVALUE( cTexto )
Ou para adicionar:
This:AddItem( cTexto )
This:Refresh()
Para modificar:
cTexto := Trim( Upper( This:GetText() ) )
This:SETVALUE( cTexto )
Ou para adicionar:
This:AddItem( cTexto )
This:Refresh()
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)