FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Ayuda sobre xBrowse/Windows 7
Posts: 408
Joined: Fri Jan 29, 2010 08:14 PM
Ayuda sobre xBrowse/Windows 7
Posted: Wed Feb 24, 2010 08:36 PM
Hola a todos:

A ver si alguien puede ayudarme ya que puse un anuncio hace unos dias para Antonio pero entiendo que tiene mucho trabajo y no me ha contestado, me dirijo ahora a todos vosotros a ver si me podeis ayudar sobre:

En el foro encontre un post de antonio que le comentaba a Jose luis como hacer un Gradiente estilo Windows 7 ( que por cierto, super bonito ), yo lo he implmentado pero he encontrado algunos fallos que sinceramente no logro solucionar, el post sobre este tema es:

viewtopic.php?f=6&t=17540

Pues los fallos que he detectado y no logro solucionar son los siguientes:

1.- Cuando se define un Gradiente en un xBrowse mediante una tabla con DBF, si el campo no contiene informacion no genera el Gradient en esa celda. Ver foto.




2.- Tanto en un xBrowse con DBF como definido con ARRAYs el gradient no lo aplica hasta el final de la declaracion del xBrowse, sino hasta la longuitud de las columnas, ver la imagen para entender mejor lo que quiero decir.



Temas adicionales:

1.- Tambien me gustaria hacer, asignar un gradient dentro de una celda para asignarle ademas otro color para la edicion de los campos dentro de un xBrowse, para que el efecto sea mucho mas bonito, ya que sino me queda con este aspecto. Ver imagen.




2.- Supongo que sera porque estoy ya obcecado y no vea nada, pero como podria cambiar el BMP que aparece en un xBrowse cuando lo defines como edicion de la celda tipo EDIT_GET_BUTTOM.




Uso:


* Libreria: FWH/FWHX 8.12 28/December/2008
* Harbour: Harbour 1.0.1 Rev 9361 1999-2008
* Compilador: Borland C++ 5.5.1 versi贸n 32bits
* Editor de Recursos: WorkShop 4.5 y ResEdit
* Gestor de B.D: A.D.A ( Advantage Data Architect )
* S.O Windows XP / Windows 7


Espero que alguien me ayude con estas cositas.
Un saludo y muchas gracias por vuestro tiempo.
JLL
Libreria: FWH/FWH1109 + Harbour 5.8.2 + Borland C++ 5.8.2
Editor de Recursos: PellecC
ADA, OURXDBU
S.O: XP / Win 7 /Win10
Blog: http://javierlloris.blogspot.com.es/
e-mail: javierllorisprogramador@gmail.com
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 PM
Re: Ayuda sobre xBrowse/Windows 7
Posted: Wed Feb 24, 2010 10:23 PM
Saludos
jll-fwh wrote:1.- Cuando se define un Gradiente en un xBrowse mediante una tabla con DBF, si el campo no contiene informacion no genera el Gradient en esa celda.


puedes solventarlo agregando este "ELSE" a la clase XBROWSE despues puedes incluir xBROWSE.PRG como un prg mas de tu proyecto

en el methodo PainData busca al siguiente "IF"

Code (fw): Select all Collapse
if ! Empty( cData ) .and. ! ( ::cDataType $ "PF" )

.....

Code (fw): Select all Collapse
聽 聽else
聽 聽 聽 aRect 聽 聽 聽 := { nRow, nCol, nRow + nHeight, Min( nCol + nWidth, ::oBrw:BrwWidth() - 5 ) }
聽 聽 聽 if ::bPaintText != nil
聽 聽 聽 聽 聽Eval( ::bPaintText, Self, hDC, "", aRect, aColors, lHighLite )
聽 聽 聽 endif


jll-fwh wrote:2.- Tanto en un xBrowse con DBF como definido con ARRAYs el gradient no lo aplica hasta el final de la declaracion del xBrowse, sino hasta la longuitud de las columnas


Puedes solventarlo usando eso

Code (fw): Select all Collapse
oBrw:nStretchCol = STRETCHCOL_LAST


jll-fwh wrote:1.- Tambien me gustaria hacer, asignar un gradient dentro de una celda para asignarle ademas otro color para la edicion de los campos dentro de un xBrowse, para que el efecto sea mucho mas bonito, ya que sino me queda con este aspecto.


tienes la data de las columnas bClrEdit, la cual puedes asignarle a una columna o a todas
en ejemplo

para 1 columna
Code (fw): Select all Collapse
oBrw:aCols[ 3 ]:bClrEdit := { || { CLR_BLACK, CLR_RED } }

para todas
Code (fw): Select all Collapse
AEval( oBrw:aCols, { |o| o:bClrEdit := { || { CLR_BLACK, CLR_RED } } } )


jll-fwh wrote:2.- Supongo que sera porque estoy ya obcecado y no vea nada, pero como podria cambiar el BMP que aparece en un xBrowse cuando lo defines como edicion de la celda tipo EDIT_GET_BUTTOM.


revisa el ejemplo xbrbtn.prg te dejo una imagen del mismo

Posts: 408
Joined: Fri Jan 29, 2010 08:14 PM
Re: Ayuda sobre xBrowse/Windows 7
Posted: Thu Feb 25, 2010 12:28 PM

Hola Daniel:

Antes que nada, muchas gracias por tu ayuda, ya que al final eres el unico que contesta a mis problemillas. Gracias. Ademas eres el GURU del xBrowse.

Te comento:

Posiblemente tengamos version de FWH diferentes ya que en el metodo PainData no veo las lineas que me comentas.

La funcion la publico Antonio en el foro, no era una modificacion del metodo sino una funcion independiente.

1.- Esta linea no existe en mi version: ( FWH 8.12 ), asi que no puedo probar lo que me comentabas.

if ! Empty( cData ) .and. ! ( ::cDataType $ "PF" )

Al funcion para el gradiente segun antonio era: ( en este caso la estoy probando con una ARRAY )

/------------------------------------------------------------------------------/
Function PaintColArray( oCol, hDC, cData, aRect, oGrid )
/------------------------------------------------------------------------------/

If oCol:oBrw:VGetPos() == oGrid:nArrayAT

  GradientFill( hDC, aRect[ 1 ] - 2, aRect[ 2 ] - 3, aRect[ 3 ] + 1, aRect[ 4 ] + 5,;
                { { 1, RGB( 220, 235, 252 ), RGB( 193, 219, 252 ) } }, .T. )

  RoundBox( hDC, 2, aRect[ 1 ] - 1, WndWidth( oCol:oBrw:hWnd ) - 22, aRect[ 3 ] + 1, 2, 2,;
            RGB( 235, 244, 253 ), 1 )
  RoundBox( hDC, 1, aRect[ 1 ] - 2, WndWidth( oCol:oBrw:hWnd ) - 21, aRect[ 3 ] + 2, 2, 2,;
            RGB( 125, 162, 206 ), 1 )

End

SetTextColor( hDC, 0 )
DrawTextEx( hDC, cData, aRect, oCol:nDataStyle )

Return NIL

2.- PAra solucionar el segundo problema me comentabas que a帽adiera esta liena al xBrowse:

oBrw:nStretchCol = STRETCHCOL_LAST

Funciona pero el Grid tiene un comportamiento no correcto, se queda embuclado refrescando el objeto y por ejemplo no visualiza el menu popup que tiene asignado el GRid. Asi que he tenido que quitarlo porque en mi version de FWH no funciona bien.

3.- Y sobre como modificar el BMP de una celda, pues debo de estar gafado, pero no tengo el fuente xbrbtn.prg en \Samples., a no ser que venga en versiones posteriores. ASi que no puedo ver como se hace.

Muchas gracias por tu ayuda y tiempo
Un saludo
JLL

Libreria: FWH/FWH1109 + Harbour 5.8.2 + Borland C++ 5.8.2
Editor de Recursos: PellecC
ADA, OURXDBU
S.O: XP / Win 7 /Win10
Blog: http://javierlloris.blogspot.com.es/
e-mail: javierllorisprogramador@gmail.com
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 PM
Re: Ayuda sobre xBrowse/Windows 7
Posted: Thu Feb 25, 2010 12:36 PM

Saludos

Ciertamente la mayoria de los cambios y caracteristicas estan reflejadas en las nuevas versiones... mi recomendacion seria que actualizaras tu actual version de fivewin y podras disfrutar de muchas mejoras del producto

Posts: 34
Joined: Tue Dec 30, 2008 07:22 PM
Re: Ayuda sobre xBrowse/Windows 7
Posted: Thu Feb 25, 2010 09:05 PM
Hola Daniel,

tu soluci贸n al punto 1, gradient en celdas vacias funciona ok, por lo menos en la versi贸n que yo tengo, pero sin embargo con la soluci贸n de la ultima columna : oBrw:nStretchCol = STRETCHCOL_LAST, obtengo un efecto indeseado, seg煤n avance a la ultima columna se ve bien el ultimo campo o me lo oculta, no s茅 si ser谩 por la versi贸n que tengo, FWH906.
No s茅 si me he explicado bien, el tema es que no s茅 poner una imagen para explicarlo.


En este caso llego hasta el ultimo campo pulsando la felchita del scroll horizontal.


En este caso llego al ultimo campo pulsando sobrel la parte final del scroll horizontal.

A ver si ahora me explico mejor con las imagenes, ver la parte derecha del xbrowse...

gracias a los dos por la explicaci贸n para poner las im谩genes.

Un saludo!
Pedro

FWH9.06 / XMate 1.15 / Borland C++ 5.5.1 / xHarbour build 1.1.0 Intl. (SimpLex) (Rev. 6195)
Posts: 883
Joined: Thu Dec 24, 2009 12:46 AM
Re: Ayuda sobre xBrowse/Windows 7
Posted: Thu Feb 25, 2010 09:17 PM

Pedro,

Carga tu aplicacion,
presiona la techa PrtScrn,
entra al Microsoft Paint o algun otro editor de bmps,
presiona las teclas Ctrl-V para pegar,
graba el archivo,
entra a ImageShack.com,
presiona Browse para buscar el fichero en tu ordenador,
presiona UpLoad,
copia el Direct Link,
Entra al foro y presiona citar,
presiona Img,
pega el link,
presiona enviar.

=====>

Bayron Landaverry
xBasePHP.com
(215)2226600 Philadelphia,PA, USA
MayaBuilders@gMail.com
Guatemala

FWH25.06--Harbour 3.0.0--BCC7.7--UEstudio 10.10
Windows 10

FiveWin, One line of code and it's done...

Posts: 2365
Joined: Wed Nov 02, 2005 11:46 PM
Re: Ayuda sobre xBrowse/Windows 7
Posted: Thu Feb 25, 2010 09:18 PM
Pedro...

Puedes usar cualquier gestor de imagenes gratuitos en la red

si no me equivoco estos son algunos
http://imageshack.us/
http://photobucket.com/
http://www.flickr.com/

despues solo colocas con el entre el boton IMG para colocar entre el tag el link imagen que te generan esas paginas
Posts: 34
Joined: Tue Dec 30, 2008 07:22 PM
Re: Ayuda sobre xBrowse/Windows 7
Posted: Mon Mar 01, 2010 07:45 PM

Hola,

he editado el mensaje anterior colocando las imagenes y nadie ha respondido, no s茅 si se ha visto o no se entiende el problema ?.

Saludos!

Pedro

FWH9.06 / XMate 1.15 / Borland C++ 5.5.1 / xHarbour build 1.1.0 Intl. (SimpLex) (Rev. 6195)
Posts: 408
Joined: Fri Jan 29, 2010 08:14 PM
Re: Ayuda sobre xBrowse/Windows 7
Posted: Tue Mar 02, 2010 02:15 PM

Hola Daniel:

Gracias por tu ayuda, pero en la version que yo tengo no funciona.

Un saludo
JLL

Libreria: FWH/FWH1109 + Harbour 5.8.2 + Borland C++ 5.8.2
Editor de Recursos: PellecC
ADA, OURXDBU
S.O: XP / Win 7 /Win10
Blog: http://javierlloris.blogspot.com.es/
e-mail: javierllorisprogramador@gmail.com
Posts: 34
Joined: Tue Dec 30, 2008 07:22 PM
Re: Ayuda sobre xBrowse/Windows 7
Posted: Tue Mar 02, 2010 05:51 PM

Hola Daniel,

驴sabes si el tema que comento sobre el comportamiento del xbrowse es por la versi贸n ?, o no tiene soluci贸n ?.

Saludos!

Pedro

FWH9.06 / XMate 1.15 / Borland C++ 5.5.1 / xHarbour build 1.1.0 Intl. (SimpLex) (Rev. 6195)
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 PM
Re: Ayuda sobre xBrowse/Windows 7
Posted: Tue Mar 02, 2010 07:03 PM
pedrog wrote:Hola Daniel,

驴sabes si el tema que comento sobre el comportamiento del xbrowse es por la versi贸n ?, o no tiene soluci贸n ?.

Saludos!


Todo tiene solucion, oBrw:nStretchCol = STRETCHCOL_LAST lo que hace es hacer de la ultima columna visible, alcance al ancho visible disponible, puede que la version que usas no maneje esa caracteristica, la clase TXBrowse a sufrido muchos cambios a mejoras, probare con la version que usas y tratare de aportar alguna solucion disponible
Posts: 34
Joined: Tue Dec 30, 2008 07:22 PM
Re: Ayuda sobre xBrowse/Windows 7
Posted: Tue Mar 02, 2010 07:37 PM

Daniel,

gracias de antemano, lo raro es que si que de una forma lo hace bien y de la otra no, supongo que ser谩 alg煤n bug de la versi贸n que yo tengo.

Saludos!

Pedro

FWH9.06 / XMate 1.15 / Borland C++ 5.5.1 / xHarbour build 1.1.0 Intl. (SimpLex) (Rev. 6195)
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 PM
Re: Ayuda sobre xBrowse/Windows 7
Posted: Wed Mar 03, 2010 03:01 AM
Pedro

pedrog wrote:Daniel,

gracias de antemano, lo raro es que si que de una forma lo hace bien y de la otra no, supongo que ser谩 alg煤n bug de la versi贸n que yo tengo.

Saludos!


no es un bug de la clase, asi debe comportarse, ajustara el ancho de la ultima columna al ancho disponible, pero he encontrado una posible solucion
cambia este IF en METHOD DrawLine()
Code (fw): Select all Collapse
聽 聽 聽 if nCol < nWidth
聽 聽 聽 聽 聽if lHighLite
聽 聽 聽 聽 聽 聽 if ::hWnd == GetFocus()
聽 聽 聽 聽 聽 聽 聽 聽oCol := ::ColAtPos ( nLast )
聽 聽 聽 聽 聽 聽 聽 聽if oCol:bPaintText != NIL
聽 聽 聽 聽 聽 聽 聽 聽 聽 Eval( oCol:bPaintText, oCol, hDC, "", { nRow + 2, nCol, nTemp - 2, nWidth - 5 } ) 聽 聽 聽 聽 聽 聽
聽 聽 聽 聽 聽 聽 聽 聽else
聽 聽 聽 聽 聽 聽 聽 聽 聽 hBrush := CreateSolidBrush( Eval( If( ::bClrRowFocus == nil, ::bClrSelFocus, ::bClrRowFocus ) )[ 2 ] )
聽 聽 聽 聽 聽 聽 聽 聽endif
聽 聽 聽 聽 聽 聽 else
聽 聽 聽 聽 聽 聽 聽 聽if oCol:bPaintText != NIL
聽 聽 聽 聽 聽 聽 聽 聽 聽 Eval( oCol:bPaintText, oCol, hDC, "", { nRow + 2, nCol, nTemp - 2, nWidth - 5 } ) 聽 聽 聽 聽 聽 聽
聽 聽 聽 聽 聽 聽 聽 聽else
聽 聽 聽 聽 聽 聽 聽 聽 聽 hBrush := CreateSolidBrush( Eval( ::bClrSel )[ 2 ] )
聽 聽 聽 聽 聽 聽 聽 聽endif
聽 聽 聽 聽 聽 聽 endif
聽 聽 聽 聽 聽else
聽 聽 聽 聽 聽 聽 hBrush := CreateSolidBrush( Eval( ::bClrStd )[ 2 ] )
聽 聽 聽 聽 聽endif
聽 聽 聽 聽 聽if ( lHighLite .or. ! ( ::lTransparent == .t. ) ) .and. hBrush != NIL
聽 聽 聽 聽 聽 聽 FillRect( hDC, {nRow, nCol, nTemp, nWidth }, hBrush )
聽 聽 聽 聽 聽endif
聽 聽 聽 聽 聽if hBrush = NIL
聽 聽 聽 聽 聽 聽 DeleteObject( hBrush )
聽 聽 聽 聽 聽endif
聽 聽 聽 endif
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 PM
Re: Ayuda sobre xBrowse/Windows 7
Posted: Wed Mar 03, 2010 03:29 AM
Jll-fw

para tu version el IF aparece de esta forma

Code (fw): Select all Collapse
if ! Empty( cData )


incluye el ELSE que te comente anteriormente

Code (fw): Select all Collapse
 聽 else
聽 聽 聽 aRect 聽 聽 聽 := { nRow, nCol, nRow + nHeight, Min( nCol + nWidth, ::oBrw:BrwWidth() - 5 ) }
聽 聽 聽 if ::bPaintText != nil
聽 聽 聽 聽 聽Eval( ::bPaintText, Self, hDC, "", aRect, aColors, lHighLite )
聽 聽 聽 endif


jll-fwh wrote:2.- PAra solucionar el segundo problema me comentabas que a帽adiera esta liena al xBrowse:

oBrw:nStretchCol = STRETCHCOL_LAST

Funciona pero el Grid tiene un comportamiento no correcto, se queda embuclado refrescando el objeto y por ejemplo no visualiza el menu popup que tiene asignado el GRid. Asi que he tenido que quitarlo porque en mi version de FWH no funciona bien.


puedes usar el codigo que publique en el post anterior (para pedro), creo que puede servir hasta para la version actual


jll-fwh wrote:3.- Y sobre como modificar el BMP de una celda, pues debo de estar gafado, pero no tengo el fuente xbrbtn.prg en \Samples., a no ser que venga en versiones posteriores. ASi que no puedo ver como se hace.


Disculpa el error fue mio ese es un ejemplo para otro funcionalidad de los botones,

causalmente para tu version se implemento lo que necesitas, pero los ejemplo no fueron introducidos sino hasta la siguiente version, pero en su tiempo los publique

* Nuevo: En la clase TXBrowse, nuevo DATA nBtnBmp para seleccionar el 铆ndice de mapa de bits en la matriz oCol:aBitmaps por lo que la imagen del bot贸n se puede cambiar, cuando se usan estos estilos de edici贸n: EDIT_LISTBOX, EDIT_BUTTON, EDIT_GET_LISTBOX y EDIT_GET_BUTTON.

* Nuevo: En la clase TXBrowse, nuevo m茅todod ChangeBitmap(), selecciona la imagen del bot贸n usando el valor de la DATA nBtnBmp.
tomado del Whatsnew de la version 8.12: http://forums.fivetechsupport.com/viewtopic.php?p=72601#p72601

este es el link dinde estan esos ejemplos que faltaron: http://forums.fivetechsupport.com/viewtopic.php?p=72563#p72563
te debe interesar xbbtget.rar
Posts: 34
Joined: Tue Dec 30, 2008 07:22 PM
Re: Ayuda sobre xBrowse/Windows 7
Posted: Wed Mar 03, 2010 06:33 PM

Daniel,
gracias!, lo pruebo y te comento algo.

Saludos!

Pedro

FWH9.06 / XMate 1.15 / Borland C++ 5.5.1 / xHarbour build 1.1.0 Intl. (SimpLex) (Rev. 6195)