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: 20416
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
- Curtiram: 1 vez
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, 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/
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/
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: 20416
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
- Curtiram: 1 vez
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, 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/
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/
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: 20416
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
- Curtiram: 1 vez
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, 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/
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

- Mensagens: 3109
- 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: 3109
- 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)