ComboBox mas amcho que el definido....

ComboBox mas amcho que el definido....

Postby dbzap » Fri Oct 05, 2007 5:01 pm

hola a todos...
me gustaria desplegar una lista desde el combobox, pero que fuera mas ancha que el espacio fisico en el cual pongo dicho combobox.

Tengo una lista para desplegar y su ancho soporta por ejemplo 10 caracteres...pero me gustraria que desplegara una lista con mayor cantidad de caracteres, sin que estos queden bajo la barra de desplazamiento

Agradecido de antemano.
Julio Gonzalez V.
RANDOM S.A.
SISTEMICA S.A.
User avatar
dbzap
 
Posts: 189
Joined: Mon Nov 07, 2005 7:36 pm
Location: Chile

Postby QAZWSX2K » Fri Oct 05, 2007 6:01 pm

la amigo no entiendo tu pregunta, uno modifica el ancho del combobox a como uno quiera, de todos modos te pongo un ejemplo de como yo los uso, espero te sirva

SOCIEDADES={}
AADD(SOCIEDADES,"COMPAÑIA ANONIMA ")
AADD(SOCIEDADES,"RESPONSABILIDAD LIMITADA ")
AADD(SOCIEDADES,"ASOCIACION ")
AADD(SOCIEDADES,"COMANDITA ")
AADD(SOCIEDADES,"FUNDACION ")
AADD(SOCIEDADES,"CORPORACION ")
AADD(SOCIEDADES,"COMUNIDAD ")
AADD(SOCIEDADES,"SOCIEDAD ANONIMA ")
AADD(SOCIEDADES,"SOCIEDAD COLECTIVA ")
AADD(SOCIEDADES,"COOPERATIVA ")
@ 175, 60 COMBOBOX OBOX VAR xTSOCIE ITEMS SOCIEDADES OF FICHA:ADIALOGS[1] size 100,100 PIXEL
Software especializado para oficinas contables con grandes volumenes de Informacion
Impresion de todos los formularios del Seniat, Dian

alex_patino74@hotmail.com
whatsapp 57+3214777217
User avatar
QAZWSX2K
 
Posts: 364
Joined: Tue Oct 25, 2005 7:06 pm
Location: Bogota - Caracas

Postby Antonio Linares » Fri Oct 05, 2007 6:07 pm

Julio,

Prueba con:

#define CB_SETDROPPEDWIDTH 0x0160

oCombo:SendMsg( CB_SETDROPPEDWIDTH, nWidth )
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42154
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby dbzap » Fri Oct 05, 2007 6:38 pm

Maestro :
El parametro nWidth ... a que corresponderia ?
Saludos
Julio Gonzalez V.
RANDOM S.A.
SISTEMICA S.A.
User avatar
dbzap
 
Posts: 189
Joined: Mon Nov 07, 2005 7:36 pm
Location: Chile

Postby Antonio Linares » Fri Oct 05, 2007 7:04 pm

Al ancho que deseas darle en pixeles
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42154
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby dbzap » Fri Oct 05, 2007 7:13 pm

y alguna funcion que comvierta caracteres en pixels ?
o algun ejemplo que me lo demuestre ?
gracias
Julio Gonzalez V.
RANDOM S.A.
SISTEMICA S.A.
User avatar
dbzap
 
Posts: 189
Joined: Mon Nov 07, 2005 7:36 pm
Location: Chile

Postby dbzap » Fri Oct 05, 2007 8:53 pm

no resulta....
la imagen queda recortada y el item mayor queda bajo el vscroll....
tengo la imagen ( en pequeño ) pero no se como adjuntarla
gracias

este es el codigo :
Code: Select all  Expand view  RUN
...
Local aTipos := { "Producto Estándar",;
                  "Producto Seriado/Activo Fijo",;
                  "Producto Multipropósito",;
                  "Servicios",;
                  "Productos Genéricos",;
                  "Productos Crías de Genéricos" }
...
REDEFINE BTNGET   oDescri VAR cDescri ID 91 Of oDlg
[b]
REDEFINE COMBOBOX oTipo   VAR cTipo ITEMS aTipos ID 92 Of oDlg ;
         VALID ( If( oTipo:nAt<>0,;
                     cTipoReal := aTipoReal[oTipo:nAt],;
                     NIL ),;
                 .T. )
oTipo:SendMsg( CB_SETDROPPEDWIDTH, 280 )
[/b]

REDEFINE BTNGET   oFami   VAR cFami   ID 93 Of oDlg


( con el define que me indicaste en el top del PRG )
Julio Gonzalez V.
RANDOM S.A.
SISTEMICA S.A.
User avatar
dbzap
 
Posts: 189
Joined: Mon Nov 07, 2005 7:36 pm
Location: Chile

Postby Antonio Linares » Fri Oct 05, 2007 8:59 pm

Julio,

El mensaje tienes que enviarlo desde la claúsula ON INIT ya que antes el control no tiene un handle de ventana válido:

ACTIVATE DIALOG oDlg ;
ON INIT oTipo:SendMsg( CB_SETDROPPEDWIDTH, 280 )
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42154
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby dbzap » Fri Oct 05, 2007 9:10 pm

Perfecto !!!

Pero para terminarla, existira una funcion que convierta de caracteres a pixeles ?

Mil gracias
Julio Gonzalez V.
RANDOM S.A.
SISTEMICA S.A.
User avatar
dbzap
 
Posts: 189
Joined: Mon Nov 07, 2005 7:36 pm
Location: Chile

Postby Antonio Linares » Fri Oct 05, 2007 11:18 pm

GetTextWidth( 0, cTexto, oFont:hFont ) --> nPixels
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42154
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby FiveWiDi » Sat Oct 06, 2007 9:13 pm

Antonio,

Antonio Linares wrote:GetTextWidth( 0, cTexto, oFont:hFont ) --> nPixels


Viendo estas líneas, no sería posible crear una cláusula AUTOWIDTH para los SAY?

Algo así como:
"METHOD New( nRow, nCol, bText, oWnd, cPicture, oFont,;
lCentered, lRight, lBorder, lPixels, nClrText, nClrBack,;
nWidth, nHeight, lDesign, lUpdate, lShaded, lBox, lRaised, lAutoWidth ) CLASS TSay
.../...

if lAutoWidth
::nRight = ::nLeft + GetTextWidth( 0, ::cCaption, ::oFont:hFont ) - 1
EndIf

if ::lDrag
::CheckDots()
endif

return Self"


Saludos
Carlos G.
FiveWiDi
 
Posts: 1200
Joined: Mon Oct 10, 2005 2:38 pm


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Antonio Linares and 18 guests