Página 1 de 1
Combobox, deixar ele aberto com as opções?
Enviado: 15 Jan 2021 13:34
por pena
Boa tarde, alguém sabe como faz para num combobox, ao receber o foco, ele abrir as opções, tem um propriedade, showdropbox = true, mas não surtiu efeito
Combobox, deixar ele aberto com as opções?
Enviado: 17 Jan 2021 13:27
por alxsts
Olá!
Alterei o exemplo que está no caminho C:\MiniGUI\SAMPLES\BASIC\COMBO_1\demo.prg e ficou como abaixo. Faça testes. Creio que vá resolver o teu problema.
Código: Selecionar todos
/*
* MINIGUI - Harbour Win32 GUI library Demo
*
*/
#include "minigui.ch"
#define COMBO_BASE 320
#define CB_SHOWDROPDOWN ( COMBO_BASE + 15 )
Function Main
DEFINE WINDOW Form_1 ;
AT 0,0 ;
WIDTH 400 ;
HEIGHT 200 ;
TITLE 'ComboBox Demo' ;
MAIN
@ 20,20 COMBOBOX Combo_1 ;
WIDTH 100 ;
ITEMS { '1 | Uno' , '2 | Dos' , '3 | tres' } ;
VALUE 1 ;
ON ENTER MsgInfo( Form_1.Combo_1.ITEMHEIGHT ) ;
UPPERCASE ;
ITEMHEIGHT 21 ;
FONT 'Courier' SIZE 12 ;
TOOLTIP 'Pressione TAB para próximo campo'
DEFINE COMBOBOX Combo_2
ROW 20
COL 140
WIDTH 100
ITEMS { '1 | Uno' , '2 | Dos' , '3 | tres' }
VALUE 1
ON GOTFOCUS SendMessage( GetControlHandle('Combo_2','Form_1'), CB_SHOWDROPDOWN, 1, 0 )
ON ENTER MsgInfo ( Form_1.Combo_2.ITEMHEIGHT )
LOWERCASE .T.
ITEMHEIGHT 17
END COMBOBOX
END WINDOW
CENTER WINDOW Form_1
ACTIVATE WINDOW Form_1
Return Nil
Combobox, deixar ele aberto com as opções?
Enviado: 17 Jan 2021 19:22
por JoséQuintas
Está aí uma coisa interessante pra pensar.
Código: Selecionar todos
ON GOTFOCUS SendMessage( GetControlHandle('Combo_2','Form_1'), CB_SHOWDROPDOWN, 1, 0 )
Na mesma linha que cria o controle está definindo um método.
Com certeza na prática (internamente) vai ser diferente, porque se o controle ainda não existir, como poderia definir uma ação pra ele?
Além disso, como poderia pegar o handle dele, se ele não existisse?
Esse GetControlHandle("combo_2","form_1") acaba não vinculado a nada, e por isso fica mais tranquilo usá-lo, o controle nem precisa existir, para esta função.
Não tinha pensado nisso antes, mas é interessante, acaba permitindo referência a coisas que não existem, o que na montagem de uma tela às vezes pode ajudar.
curiosidade, a gtwvg já faz isso:
https://github.com/JoseQuintas/harbour- ... #L255-L263
Combobox, deixar ele aberto com as opções?
Enviado: 18 Jan 2021 06:47
por marcosgambeta
A tecla F4 pode ser usada para abrir e fechar o ComboBox. Então, pode-se fazer assim também:
Mas ao testar, notei um [d]efeito colateral em ambos os casos (SendMessage e InsertVKey): quando o combobox ganha o foco através do mouse, ele abre e fecha em seguida.
Teste assim:
. execute o exemplo
. clique no segundo combobox
Combobox, deixar ele aberto com as opções?
Enviado: 18 Jan 2021 13:12
por HASA
Fala Gambeta, passei só pra deixar aquele abraço,
HASA
Combobox, deixar ele aberto com as opções?
Enviado: 19 Jan 2021 13:56
por pena
Desculpe pela demora no feedback, mas funcionou perfeitamente, obg a todos
Combobox, deixar ele aberto com as opções?
Enviado: 25 Jan 2021 21:03
por Nascimento
pena escreveu:Boa tarde, alguém sabe como faz para num combobox, ao receber o foco, ele abrir as opções, tem um propriedade, showdropbox = true, mas não surtiu efeito
tem esse comando bem simples
on gotfocus comboshowdropdown( this.handle )