Combobox, deixar ele aberto com as opções?
Moderador: Moderadores
-
pena
- Usuário Nível 3

- Mensagens: 331
- Registrado em: 06 Jul 2004 18:08
- Localização: CACHOEIRA DO SUL-RS
Combobox, deixar ele aberto com as opções?
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
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
Combobox, deixar ele aberto com as opções?
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.
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[]´s
Alexandre Santos (AlxSts)
Alexandre Santos (AlxSts)
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Combobox, deixar ele aberto com as opções?
Está aí uma coisa interessante pra pensar.
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
Código: Selecionar todos
ON GOTFOCUS SendMessage( GetControlHandle('Combo_2','Form_1'), CB_SHOWDROPDOWN, 1, 0 )
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
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/
-
marcosgambeta
- Usuário Nível 3

- Mensagens: 332
- Registrado em: 16 Jun 2005 22:53
Combobox, deixar ele aberto com as opções?
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
Código: Selecionar todos
ON GOTFOCUS InsertVKey( VK_F4 )Teste assim:
. execute o exemplo
. clique no segundo combobox
Atenciosamente,
Marcos Antonio Gambeta
Marcos Antonio Gambeta
-
pena
- Usuário Nível 3

- Mensagens: 331
- Registrado em: 06 Jul 2004 18:08
- Localização: CACHOEIRA DO SUL-RS
Combobox, deixar ele aberto com as opções?
Desculpe pela demora no feedback, mas funcionou perfeitamente, obg a todos
- Nascimento
- Usuário Nível 4

- Mensagens: 763
- Registrado em: 19 Jul 2008 12:11
- Localização: OLINDA-PE
Combobox, deixar ele aberto com as opções?
tem esse comando bem simplespena 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
on gotfocus comboshowdropdown( this.handle )
A arte de programar é simplesmente fazer seus pensamentos serem interpretados por uma maquina
clipper 5.3 /harbour/minigui