FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Posicion del Combobox con REDEFIN *** Solucionado ***
Posts: 243
Joined: Wed Sep 19, 2007 04:32 PM
Posicion del Combobox con REDEFIN *** Solucionado ***
Posted: Mon Jun 09, 2008 05:56 PM

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 :D

Hago uso Fivewin 8.01 y xHarbour

Oscar A. Martinez
http://www.multisofthn.com
Honduras, Centro America
xHarbour Enterprise 1.2.2, Fivewin 13.06
Posts: 299
Joined: Mon Oct 22, 2007 03:03 PM
Posicion del Combobox con REDEFIN *** Solucionado ***
Posted: Mon Jun 09, 2008 06:08 PM

Puedes colocar el código?, porque a mi me trabajan bién (tengo ese mismo caso)

Saludos



Angel, Valencia, Venezuela



xH .997 - FW 7.9 - BCC55 - WorkShop - MySql
Posts: 243
Joined: Wed Sep 19, 2007 04:32 PM
Este es el codigo
Posted: Tue Jun 10, 2008 03:03 PM
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.

	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.
Oscar A. Martinez
http://www.multisofthn.com
Honduras, Centro America
xHarbour Enterprise 1.2.2, Fivewin 13.06
Posts: 243
Joined: Wed Sep 19, 2007 04:32 PM
Posicion del Combobox con REDEFIN *** Solucionado ***
Posted: Wed Jun 11, 2008 03:43 PM
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:
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
}


Saludos desde Honduras :-)
Oscar A. Martinez
http://www.multisofthn.com
Honduras, Centro America
xHarbour Enterprise 1.2.2, Fivewin 13.06
Posts: 782
Joined: Wed Dec 19, 2007 07:50 AM
Posicion del Combobox con REDEFIN *** Solucionado ***
Posted: Wed Jun 11, 2008 04:13 PM

Hola Blessed:

Has probado lo siguiente?

oCombo:Hide()
aquí haces los cambios
oCombo:Show()

Saludos

Manuel Mercado

manuelmercado at prodigy dot net dot mx
Posts: 243
Joined: Wed Sep 19, 2007 04:32 PM
Posicion del Combobox con REDEFIN *** Solucionado ***
Posted: Fri Jun 13, 2008 03:37 PM

Hola, que gusto maestro

Lo probare enseguida...

Saludos :D

Oscar A. Martinez
http://www.multisofthn.com
Honduras, Centro America
xHarbour Enterprise 1.2.2, Fivewin 13.06
Posts: 243
Joined: Wed Sep 19, 2007 04:32 PM
Posicion del Combobox con REDEFIN *** Solucionado ***
Posted: Mon Jun 16, 2008 04:30 PM
Saludos Amigos del foro:

Gracias por su ayuda, persisti un poco con el tradicional prueba y error.
Al combinar:
	oCombo:SetItems( {} )
	oCombo:Reset()


Ceso el comportamiento de despliegue o pintado en ubicaciones no determinadas.

Saludos desde :-)
Oscar A. Martinez
http://www.multisofthn.com
Honduras, Centro America
xHarbour Enterprise 1.2.2, Fivewin 13.06

Continue the discussion