Paco,
Es un combobox editable ?
Paco,
Es un combobox editable ?
Antonio Linares wrote: Paco,Antonio,
Es un combobox editable ?
Paquito, se me ocurren varias posibilidades
La primera que intentarÃa serÃa en el objeto oCombo:oGet meterle un action { || .T- } que no hiciese nada y ponerle el bitmap que consideres, poniéndolo y quitándolo o cambiándolo según la validacion que consideres, lo único es que ese bitmap aparecerÃa a la derecha ( en principio )
Dime qué te parece
cnavarro wrote: Paquito, se me ocurren varias posibilidadesGracias Cristóbal. Acabo de ver tu comentario. 17:19.
La primera que intentarÃa serÃa en el objeto oCombo:oGet meterle un action { || .T- } que no hiciese nada y ponerle el bitmap que consideres, poniéndolo y quitándolo o cambiándolo según la validacion que consideres, lo único es que ese bitmap aparecerÃa a la derecha ( en principio )
Dime qué te parece
#include "FiveWin.ch"
function Main()
local oDlg, oCmb, cSelected := "Item 1"
DEFINE DIALOG oDlg TITLE "ComboBox Example" SIZE 300, 200 PIXEL
@ 2, 3 COMBOBOX oCmb VAR cSelected SIZE 100, 60 ;
ITEMS { "Item 1", "Item 2", "Item 3" }
__clsAddMsg( oCmb:ClassH, "Display", @Display(), HB_OO_MSG_METHOD,, 1 )
@ 3, 8 BUTTON "OK" SIZE 50, 20 ;
ACTIVATE DIALOG oDlg CENTERED
RETURN NIL
static function Display()
local Self := QSelf()
FillRect( ::GetDC(), { 0, 0, 23, 23 }, TBrush():New( , CLR_RED ):hBrush )
::ReleaseDC()
return nil#include "FiveWin.ch"
function Main()
local oDlg, oCmb, cSelected := " "
DEFINE DIALOG oDlg TITLE "ComboBox Example" SIZE 300, 200 PIXEL
@ 2, 3 COMBOBOX oCmb VAR cSelected SIZE 100, 60 ;
ITEMS { " ", "Item 1", "Item 2", "Item 3" }
__clsAddMsg( oCmb:ClassH, "Display", @Display(), HB_OO_MSG_METHOD,, 1 )
@ 3, 8 BUTTON "OK" SIZE 50, 20 ACTION oDlg:End()
ACTIVATE DIALOG oDlg CENTERED
RETURN NIL
static function Display( o )
local Self := QSelf()
local hDC := ::GetDC()
local aRect := GetClientRect( ::hWnd )
if Empty( ::Varget() )
RoundBox( hDC, aRect[ 2 ] - 6, aRect[ 1 ] - 6, aRect[ 4 ] + 6, aRect[ 3 ] + 6, 0, 0, ;
CLR_RED, 4 )
else
RoundBox( hDC, aRect[ 2 ] - 6, aRect[ 1 ] - 6, aRect[ 4 ] + 6, aRect[ 3 ] + 6, 0, 0, ;
CLR_GREEN, 4 )
endif
::ReleaseDC()
return nilcnavarro wrote: Paquito, al hilo de lo que ha hecho Antonio, mira este codigo ( en lugar del box, puedes pintar el bitmap o lo que consideres )Gracias Cristobal, pero me temo que no vale. Se tratarÃa de pintar dentro del combobox que es lo complicado. Fuera ya pude pintar el triangulo. Más arriba puse un ejemplo.
Quedo a tu disposicion si necesitas mas ayuda#include "FiveWin.ch" function Main() local oDlg, oCmb, cSelected := " " DEFINE DIALOG oDlg TITLE "ComboBox Example" SIZE 300, 200 PIXEL @ 2, 3 COMBOBOX oCmb VAR cSelected SIZE 100, 60 ; ITEMS { " ", "Item 1", "Item 2", "Item 3" } __clsAddMsg( oCmb:ClassH, "Display", @Display(), HB_OO_MSG_METHOD,, 1 ) @ 3, 8 BUTTON "OK" SIZE 50, 20 ACTION oDlg:End() ACTIVATE DIALOG oDlg CENTERED RETURN NIL static function Display( o ) local Self := QSelf() local hDC := ::GetDC() local aRect := GetClientRect( ::hWnd ) if Empty( ::Varget() ) RoundBox( hDC, aRect[ 2 ] - 6, aRect[ 1 ] - 6, aRect[ 4 ] + 6, aRect[ 3 ] + 6, 0, 0, ; CLR_RED, 4 ) else RoundBox( hDC, aRect[ 2 ] - 6, aRect[ 1 ] - 6, aRect[ 4 ] + 6, aRect[ 3 ] + 6, 0, 0, ; CLR_GREEN, 4 ) endif ::ReleaseDC() return nil

paquitohm wrote: Vale Cristóbal, no habÃa entendido tu solución. DisculpaSi, esa era mi intencion con la solucion que te propuse, pero cuando tenga un rato miro de poner el bitmap dentro del combo, ya como tema de I+D
Me parece muy buena idea. Cuadro por fuera rojo y en mi caso le he puesto, en vez de verde, que lo apague cuando se seleccione algo. De esta manera puedo poner la variable "obligatorio" como un codeblock, lo cual mejora mi solucion de un bitmap. Me gustaba más el triangulito, pero asà también se queda muy bien: Una marca de "obligatorio" caracterÃstica y diferenciada de los Gets: Graficamente el usuario lo entiende: Distinto objeto, distinta marca de obligatoriedad.
Una solución elegante y rápida.
Gracias a ti y a Antonio ! :D