Saludos amigos del Foro:
Tengo un problema con el comportamiento de una serie de Combobox, veran, son 4 combobox, el primero determina el contenido de los siguientes tres, es decir si el elemento seleccionado del primer combo cambiara automaticamente el de los siguientes.
Estan bajo la clausula REDEFINE COMBOBOX oCombo VAR cModelos ITEMS aModelos ID 170 OF oDTipoV UPDATE
Los combobox los vacio con oCombo:SetItems( {} )
y procedo a rellenarlos con oCombo:ADD( cModelo )
Todo lo hace correctamente, con la salvedad de que con Windows XP los combobox usas la lista del combobox se pinta en otros sitios de la pantalla que no corresponden con el archivo de recursos.
En cambio con Windows Vista, aparece una lista muy grande que no corresponde a los items contenidos.
Podria decirse que es estetica, pero al final es un tanto incomodo, ya que son pantallas para atencion al publico, y los visitantes no dejan de quejarse del raro comportamiento.
Saludos desde Honduras
Hago uso Fivewin 8.01 y xHarbour
Posicion del Combobox con REDEFIN *** Solucionado ***
Posicion del Combobox con REDEFIN *** Solucionado ***
Last edited by Blessed on Mon Jun 16, 2008 4:26 pm, edited 1 time in total.
_ A. Martinez
http://www.multisofthn.com
Honduras, Centro America
xHarbour Enterprise 1.2.2, Fivewin 13.06
http://www.multisofthn.com
Honduras, Centro America
xHarbour Enterprise 1.2.2, Fivewin 13.06
Este es el codigo
Creo que debo aclarar que cuando aparece este dialogo, los comobobox siempre aparecen en su lugar, lo que se desplaza es la lista desplegable del combobox.
Solo basta con pulsar en dos ocaciones sobre el combobox y la lista se pinta correctamente.
Solo basta con pulsar en dos ocaciones sobre el combobox y la lista se pinta correctamente.
Code: Select all
LOCAL cMarca, aMarcas := {}
LOCAL cModelo, aModelos := {}
LOCAL cCiclo, aCiclos := {}
LOCAL cVidrio, aVirios := {}
LOCAL cDetalle, aDetalle := {}
LOCAL oBtn[3], oGet[6]
FillData( @aMarcas, "ms_marca" ) && Llena el arreglo con el contenido de la dbf
FillData( @aDetalle, "articulo" )
DEFINE DIALOG oSelCta RESOURCE "DLG_BS_MULT" ;
TRANSPARENT
REDEFINE FOLDER oFolder ;
ID 645 ;
OF oSelCta ;
PROMPTS "&Secuencial", "&Codigo", "&Descripción" ;
DIALOGS "DLG_BS_MULT1", "DLG_BS_MULT2", "DLG_BS_MULT3"
REDEFINE COMBOBOX oGet[1] VAR cMarca ITEMS aMarcas ID 646
OF oFolder:aDialogs[1] ;
VALID ValMarca( cMarca, @cModelo, @cCiclo, cVidrio, oGet ) UPDATE
REDEFINE COMBOBOX oGet[2] VAR cModelo ITEMS aModelos ID 647 OF oFolder:aDialogs[1] ;
VALID ValModelo( cMarca, cModelo, @cCiclo, cVidrio, oGet ) UPDATE
REDEFINE COMBOBOX oGet[3] VAR cCiclo ITEMS aCiclos ID 648 OF oFolder:aDialogs[1] ;
VALID ValCiclo( cMarca, cModelo, cCiclo, @cVidrio, oGet ) UPDATE
REDEFINE COMBOBOX oGet[4] VAR cVidrio ITEMS aVirios ID 649 OF oFolder:aDialogs[1] UPDATE
REDEFINE BUTTON oBtn[1] ID 640 OF oFolder:aDialogs[1] ;
ACTION IF( Ir_BuscaSec( cMarca, cModelo, cCiclo, cVidrio, @MyProducto ), oSelCta:End(), .F. )
&& Sigue para otros tipos de busqueda en los folders que restan ...
RETURN NIL
STATIC FUNCTION ValMarca( cMarca, cModelo, cCiclo, cVidrio, oGet )
LOCAL nCont, aModelos := {}
cModelo := SPACE(30)
cVidrio := SPACE(30)
cCiclo := SPACE(20)
oGet[2]:SetItems( {} )
oGet[3]:SetItems( {} )
oGet[4]:SetItems( {} )
FillData( @aModelos, "ms_model", cMarca ) && llena los datos filtrando la marca
FOR nCont := 1 TO LEN( aModelos )
oGet[2]:ADD( aModelos[nCont] )
NEXT
oGet[2]:Refresh() ; oGet[3]:Refresh() ; oGet[4]:Refresh()
RETURN .T.
_ A. Martinez
http://www.multisofthn.com
Honduras, Centro America
xHarbour Enterprise 1.2.2, Fivewin 13.06
http://www.multisofthn.com
Honduras, Centro America
xHarbour Enterprise 1.2.2, Fivewin 13.06
Saludos amigos del foro:
El punto es que no he visto la forma de que al momento de cambiar el contenido del combobox, verificar que si las posicion de TOP, han cambiado, y si es asi, definirlas nuevamente.
No se si eso es posible, con la clausula REDEFINE
este es el contenido del archivo RC desde Workshop:
Saludos desde Honduras
El punto es que no he visto la forma de que al momento de cambiar el contenido del combobox, verificar que si las posicion de TOP, han cambiado, y si es asi, definirlas nuevamente.
No se si eso es posible, con la clausula REDEFINE
este es el contenido del archivo RC desde Workshop:
Code: Select all
DLG_BS_MULT1 DIALOG 17, 19, 275, 124
STYLE WS_CHILD | 0x4
{
COMBOBOX 646, 102, 35, 110, 85, CBS_DROPDOWNLIST | CBS_DISABLENOSCROLL | WS_VSCROLL | WS_TABSTOP
COMBOBOX 647, 102, 49, 110, 85, CBS_DROPDOWNLIST | CBS_DISABLENOSCROLL | WS_VSCROLL | WS_TABSTOP
COMBOBOX 648, 102, 64, 110, 85, CBS_DROPDOWNLIST | CBS_DISABLENOSCROLL | WS_VSCROLL | WS_TABSTOP
COMBOBOX 649, 102, 78, 110, 85, CBS_DROPDOWNLIST | CBS_DISABLENOSCROLL | WS_VSCROLL | WS_TABSTOP
PUSHBUTTON "&Seleccionar", 640, 111, 98, 52, 20
CONTROL "", 644, "TViaInfoBar", 0 | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 0, 0, 275, 15
LTEXT "Año", -1, 62, 65, 19, 10
LTEXT "Modelo", -1, 62, 51, 27, 8
LTEXT "Marca", -1, 62, 36, 27, 8
LTEXT "Tipo vidrio", -1, 62, 80, 38, 8
}
_ A. Martinez
http://www.multisofthn.com
Honduras, Centro America
xHarbour Enterprise 1.2.2, Fivewin 13.06
http://www.multisofthn.com
Honduras, Centro America
xHarbour Enterprise 1.2.2, Fivewin 13.06
Hola, que gusto maestro
Lo probare enseguida...
Saludos
Lo probare enseguida...
Saludos
_ A. Martinez
http://www.multisofthn.com
Honduras, Centro America
xHarbour Enterprise 1.2.2, Fivewin 13.06
http://www.multisofthn.com
Honduras, Centro America
xHarbour Enterprise 1.2.2, Fivewin 13.06
Saludos Amigos del foro:
Gracias por su ayuda, persisti un poco con el tradicional prueba y error.
Al combinar:
Ceso el comportamiento de despliegue o pintado en ubicaciones no determinadas.
Saludos desde
Gracias por su ayuda, persisti un poco con el tradicional prueba y error.
Al combinar:
Code: Select all
oCombo:SetItems( {} )
oCombo:Reset()
Saludos desde
_ A. Martinez
http://www.multisofthn.com
Honduras, Centro America
xHarbour Enterprise 1.2.2, Fivewin 13.06
http://www.multisofthn.com
Honduras, Centro America
xHarbour Enterprise 1.2.2, Fivewin 13.06