Page 1 of 1

Ocultar Barra Horizontal y Vertical en xBrowse (SOLUCIONADO)

Posted: Tue Nov 10, 2015 1:12 am
by checo176
Estimados del Foro:

Quisiera compartir un problema que tuve en un Proyecto que estaba desarrollando, en donde usaba xBrowse desde recursos. El problema radicaba en que por defecto el recurso entregado en los ejemplos de FWH, viene con las propiedades WS_VSCROLL y WS_HSCROLL activadas, y al tratar de intervenir el Recurso con las siguientes sentencias no ocurría nada y seguían activas ambas

oBrw:lHScroll := .f.
oBrw:lVScroll := .f.

Bueno gracias a una idea de Armando Lagunas, pude resolver el problema y sólo fue necesario eliminar las propiedades del recurso TXBrowse en Windows Styles, cambiándole la codificación correcta. Como la codificación de este recurso no esta disponible, y no se puede modificar en Pelles C, se pudo obtener usando el antiguo Workshop 4.5, que si permite modificar las propiedades, ya que luego haber grabado el proyecto en WS 4.5 y abriéndo posteriormente el archivo res en Pelles C, se pudo obtener la codificación correcta para cada cambio de propiedad en el recurso.

De este modo se pudo obtener la codificación correcta para cada efecto sobre el recurso TXBrowse:

A continuación les muestro el resultado en cada uno de _:

Recurso TXBrowse obtenido de los ejemplos en FWH:

Window Style: 0x50310000

Image
imag

Así se ve el recurso en ejecución, donde se ve ambas barras Horizontal y Vertical por defecto activadas:

Image
subefotos


TxBrowse sin barra Horizontal:

Windows Style: 0x50210000

Image
sube fotos

Ahora el recurso en ejecución:

Image
imagenes gratis


TxBrowse sin barra Horizonta y Vertical:

Windows Style: 0x50010000

Image
subirimagenes

Ahora el recurso en ejecución:

Image
imagen


TxBrowse sin barra Horizonta, Vertical y con Borde:

Windows Style: 0x50810000

Image
subir imagenes

Finalmente el recurso en ejecución:

Image
sube fotos


Bueno si se pueden dar cuenta a veces hay que recurrir a trucos de este tipo para así poder obtener el resultado deseado. Espero que a algunos les haya servido esta ayuda y si alguien tiene por ahí más códigos de Window Style, ya sea para este recurso u otros, creo que sería de gran utilidad para los que usamos Pelles C y usamos archivos de recursos RES, poder compartirlos.

Un abrazo de Chile

Re: Ocultar Barra Horizontal y Vertical en xBrowse (SOLUCIONADO)

Posted: Fri Nov 13, 2015 5:55 am
by AIDA
Muy bueno :D

tendras un ejemplo :)

aida_p_z@hotmail.com

Saluditos :wink:

Re: Ocultar Barra Horizontal y Vertical en xBrowse (SOLUCIONADO)

Posted: Fri Nov 13, 2015 1:14 pm
by checo176
Hola Aida:

El caso que presenté, corresponde a parte del Ejemplo contenido en TestxBr3.prg, ubicado en la carpeta "fhw\samples", de todas formas te adjunto el extrato que preparé para ti.

Este sería el código:

Code: Select all

/*
*  Dialog en Recursos en ejemplo Testxbr3.prg
*/

#include "FiveWin.Ch"
#include "XBrowse.Ch"


REQUEST DBFCDX
MEMVAR  cExpr

static oCon
static cPrg, cFunc

Function RddBrwRes()

   local oDlg, oBrw, oCol, cAlias := cGetNewAlias( "CUST" )
   local aGrad := {{ 0.50, CLR_RED, CLR_YELLOW }, { 0.50, CLR_YELLOW, CLR_RED }}

   cFunc := ProcName( 0 )

   USE CUSTOMER NEW ALIAS (cAlias) SHARED VIA "DBFCDX"
   SET ORDER TO TAG FIRST
   GO TOP

   DEFINE DIALOG oDlg RESOURCE "TEST" //FONT WndMain():oFont

   REDEFINE XBROWSE oBrw ID 101 OF oDlg ;
      COLUMNS "First", "Salary" ;
      FIELDS (cAlias)->State, (cAlias)->Age ;
      HEADERS nil, nil, "State", "AGE" ;
      JUSTIFY .F., nil, .F., .T. ;
      ALIAS cAlias AUTOSORT LINES CELL ;
      BACKGROUND aGrad HORIZONTAL

   ADD TO oBrw DATA (cAlias)->CITY HEADER "City" CARGO { 1, 2 }

   oBrw:bPopUp    := { |o| ColMenu( o ) }
   AEval( oBrw:aCols, { |o| o:cToolTip := { 'Column :' + CRLF + o:cHeader, 'ToolTip' } } )

   ACTIVATE DIALOG oDlg CENTERED ON INIT oBrw:SetFocus()

   (cAlias)->( dbCloseArea() )

return nil

//----------------------------------------------------------------------------//

static function ColMenu( ocol )

   local oPop

   MENU oPop POPUP 2007
      MENUITEM "Left Align" WHEN oCol:nDataStrAlign > 0 ;
         ACTION ( oCol:SetAlign( AL_LEFT ), oCol:oBrw:SetFocus() )
      MENUITEM "Center Align" WHEN oCol:nDataStrAlign != AL_CENTER ;
         ACTION ( oCol:SetAlign( AL_CENTER ), oCol:oBrw:SetFocus() )
      MENUITEM "Right Align" WHEN oCol:nDataStrAlign != AL_RIGHT ;
         ACTION ( oCol:SetAlign( AL_RIGHT ), oCol:oBrw:SetFocus() )
      MENUITEM "Freeze" ACTION ( oCol:oBrw:nFreeze := oCol:nPos, oCol:oBrw:Refresh(), oCol:oBrw:SetFocus() )
      MENUITEM "Stretch" ACTION ( oCol:oBrw:nStretchCol := oCol:nCreationOrder, oCol:oBrw:Refresh(), ;
                        oCol:oBrw:SetFocus() )

      MENUITEM 'Edit' ;
         WHEN { |o| o:SetCheck( oCol:nEditType > 0 ), .t. } ;
         ACTION ( oCol:nEditType := If( oCol:nEditType > 0, 0, 1 ), ;
                  oMenuItem:SetCheck( oCol:nEditType > 0 ), ;
                  oCol:oBrw:SetFocus() )

   ENDMENU

return oPop
El archivo de recursos (RES) te lo enviaré al correo que me indicas. Yo uso Pelles C para editar los archivos de recursos

Un abrazo desde Chile

Re: Ocultar Barra Horizontal y Vertical en xBrowse (SOLUCIONADO)

Posted: Fri Nov 13, 2015 7:49 pm
by joseluisysturiz
Un poco mas, saludos... :shock:

/* styles posibles

0x50000000 -> desta forma ele fica por default com as barras Hor/Vert Ativas, ai sim, basta vc inserir no seu codigo :
0x50D00000 -> Barra Horizontal
0x50A00000 -> Barra Vertical
0x50B00000 -> Barra Horizontal e Vertical
0x50010000 -> sin barras