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