Ayuda sobre xBrowse/Windows 7

Ayuda sobre xBrowse/Windows 7

Postby jll-fwh » Wed Feb 24, 2010 8: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.

Image


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.

Image

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.

Image


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.

Image


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
User avatar
jll-fwh
 
Posts: 408
Joined: Fri Jan 29, 2010 8:14 pm
Location: Meliana - Valencia

Re: Ayuda sobre xBrowse/Windows 7

Postby Daniel Garcia-Gil » 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: Select all  Expand view  RUN
if ! Empty( cData ) .and. ! ( ::cDataType $ "PF" )

.....

Code: Select all  Expand view  RUN

   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: Select all  Expand view  RUN
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: Select all  Expand view  RUN
oBrw:aCols[ 3 ]:bClrEdit := { || { CLR_BLACK, CLR_RED } }

para todas
Code: Select all  Expand view  RUN
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

Image
User avatar
Daniel Garcia-Gil
 
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita

Re: Ayuda sobre xBrowse/Windows 7

Postby jll-fwh » 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
User avatar
jll-fwh
 
Posts: 408
Joined: Fri Jan 29, 2010 8:14 pm
Location: Meliana - Valencia

Re: Ayuda sobre xBrowse/Windows 7

Postby Daniel Garcia-Gil » 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
User avatar
Daniel Garcia-Gil
 
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita

Re: Ayuda sobre xBrowse/Windows 7

Postby pedrog » Thu Feb 25, 2010 9: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.

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

Image
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!
Last edited by pedrog on Sun Feb 28, 2010 10:00 pm, edited 3 times in total.
Pedro
FWH9.06 / XMate 1.15 / Borland C++ 5.5.1 / xHarbour build 1.1.0 Intl. (SimpLex) (Rev. 6195)
User avatar
pedrog
 
Posts: 34
Joined: Tue Dec 30, 2008 7:22 pm
Location: Navarra, Spain

Re: Ayuda sobre xBrowse/Windows 7

Postby Bayron » Thu Feb 25, 2010 9: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
(215)2226600 Philadelphia,PA, USA
+(502)46727275 Guatemala
MayaBuilders@gMail.com

FWH12.04||Harbour 3.2.0 (18754)||BCC6.5||UEstudio 10.10||
Windows 7 Ultimate

FiveWin, One line of code and it's done...
User avatar
Bayron
 
Posts: 815
Joined: Thu Dec 24, 2009 12:46 am
Location: Philadelphia, PA

Re: Ayuda sobre xBrowse/Windows 7

Postby Daniel Garcia-Gil » Thu Feb 25, 2010 9: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
User avatar
Daniel Garcia-Gil
 
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita

Re: Ayuda sobre xBrowse/Windows 7

Postby pedrog » Mon Mar 01, 2010 7: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)
User avatar
pedrog
 
Posts: 34
Joined: Tue Dec 30, 2008 7:22 pm
Location: Navarra, Spain

Re: Ayuda sobre xBrowse/Windows 7

Postby jll-fwh » Tue Mar 02, 2010 2: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
User avatar
jll-fwh
 
Posts: 408
Joined: Fri Jan 29, 2010 8:14 pm
Location: Meliana - Valencia

Re: Ayuda sobre xBrowse/Windows 7

Postby pedrog » Tue Mar 02, 2010 5: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)
User avatar
pedrog
 
Posts: 34
Joined: Tue Dec 30, 2008 7:22 pm
Location: Navarra, Spain

Re: Ayuda sobre xBrowse/Windows 7

Postby Daniel Garcia-Gil » Tue Mar 02, 2010 7: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
User avatar
Daniel Garcia-Gil
 
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita

Re: Ayuda sobre xBrowse/Windows 7

Postby pedrog » Tue Mar 02, 2010 7: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)
User avatar
pedrog
 
Posts: 34
Joined: Tue Dec 30, 2008 7:22 pm
Location: Navarra, Spain

Re: Ayuda sobre xBrowse/Windows 7

Postby Daniel Garcia-Gil » Wed Mar 03, 2010 3: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: Select all  Expand view  RUN

      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
 
User avatar
Daniel Garcia-Gil
 
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita

Re: Ayuda sobre xBrowse/Windows 7

Postby Daniel Garcia-Gil » Wed Mar 03, 2010 3:29 am

Jll-fw

para tu version el IF aparece de esta forma

Code: Select all  Expand view  RUN
if ! Empty( cData )


incluye el ELSE que te comente anteriormente

Code: Select all  Expand view  RUN
  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
User avatar
Daniel Garcia-Gil
 
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita

Re: Ayuda sobre xBrowse/Windows 7

Postby pedrog » Wed Mar 03, 2010 6: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)
User avatar
pedrog
 
Posts: 34
Joined: Tue Dec 30, 2008 7:22 pm
Location: Navarra, Spain

Next

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 71 guests