XBrowse, ajustar aspecto de las barras de scroll*Solucionado

User avatar
AngelSalom
Posts: 727
Joined: Fri Oct 07, 2005 7:38 am
Location: Benicarló (Castellón ) - España
Has thanked: 1 time
Contact:

XBrowse, ajustar aspecto de las barras de scroll*Solucionado

Post by AngelSalom »

Hola amigos, ¿sería posible en un xBrowse ajustar el ancho de la barra vertical de scroll así como el alto de la barra horizontal de scroll?
Estoy diseñando una aplicación para una pantalla táctil de 8 pulgadas y el tamaño actual de las barras lo hace inmanejable.
Probé con esta modificación en el método Initiate del xBrowse sin resultado.

Code: Select all | Expand

METHOD Initiate( hDlg ) CLASS TXBrowse

   local oBrush

   if ::oBrush != nil
      oBrush := ::oBrush
      ::oBrush := nil
   endif

   if hDlg != nil
      Super:Initiate( hDlg )
//      ::SetColor( CLR_BLACK, GetSysColor( COLOR_WINDOW ) ) // Was resetting colors already set. Now commented out v9.12
   endif

   if ::lVScroll .or. lAnd( GetWindowLong( ::hWnd, GWL_STYLE ), WS_VSCROLL )
      DEFINE SCROLLBAR ::oVScroll VERTICAL OF Self
      /// Modifico ancho
      ::oVScroll:nWidth:=100
   endif

   if ::lHScroll .or. lAnd( GetWindowLong( ::hWnd, GWL_STYLE ), WS_HSCROLL )
      DEFINE SCROLLBAR ::oHScroll HORIZONTAL OF Self
      // Modifico alto
     ::oHScroll:nHeight:=100
   endif
 


Gracias,
Por cierto : Las aplicaciones FW en las tablets con Windows 8.1 van "a toda velocidad" :D :D
Last edited by AngelSalom on Wed Jul 08, 2015 10:45 am, edited 1 time in total.
Angel Salom
Visionwin Software - https://www.visionwin.com
------------------------------------------------------------
fwh 19.05 - harbour 3.2 - bcc 7.4
User avatar
AngelSalom
Posts: 727
Joined: Fri Oct 07, 2005 7:38 am
Location: Benicarló (Castellón ) - España
Has thanked: 1 time
Contact:

Re: XBrowse, ajustar aspecto de las barras de scroll

Post by AngelSalom »

Angel Salom
Visionwin Software - https://www.visionwin.com
------------------------------------------------------------
fwh 19.05 - harbour 3.2 - bcc 7.4
User avatar
AngelSalom
Posts: 727
Joined: Fri Oct 07, 2005 7:38 am
Location: Benicarló (Castellón ) - España
Has thanked: 1 time
Contact:

Re: XBrowse, ajustar aspecto de las barras de scroll

Post by AngelSalom »

Up!
Angel Salom
Visionwin Software - https://www.visionwin.com
------------------------------------------------------------
fwh 19.05 - harbour 3.2 - bcc 7.4
User avatar
joseluisysturiz
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela
Contact:

Re: XBrowse, ajustar aspecto de las barras de scroll

Post by joseluisysturiz »

saludos, no seria mejor si quitas las barras,? asi ocuparia menos espacio el xbrowse, saludos... :shock:
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
Biel EA6DD
Posts: 682
Joined: Tue Feb 14, 2006 9:48 am
Location: Mallorca
Contact:

Re: XBrowse, ajustar aspecto de las barras de scroll

Post by Biel EA6DD »

Hola Angel, desde programa no creo que se pueda, debes modificar los parámetros WindowsMetrics en el registro.

Creo que lo encontre en microsoft.com, pero tampoco lo se a ciencia cierta, en cualquier caso esto es lo que guarde en mis anotaciones.


1. Press Windows + R keys to open the Run dialog, type regedit, and click/tap OK.

2. If prompted by UAC, then click/tap on Yes.

3. In regedit, navigate to the location below.

HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics

4. In the right pane of WindowMetrics, double click/tap on ScrollHeight to be able to modify it.

5. Type in a data value between -120 to -1500, and click/tap OK.
NOTE: The default value is -255. A higher value (ex: -1000) will give you a wider scrollbar, and lower value (ex: -100) will give you a thinner scrollbar.

6. In the right pane of WindowMetrics, double click/tap on ScrollWidth to be able to modify it.
7. Type in the same data value you entered for "ScrollHeight" in step 5 above, and click/tap OK.
8. Close regedit.
9. Sign-out from your user account, sign-in again and check.

Espero te sea de utilidad. Evidentemente esto no ajusta los scrolls de xBrowse sino todas las barras de scroll de windows. Pero bueno en el fondo casi mejor, pues hace algo más manejable el entorno en modo táctil.
Saludos desde Mallorca
Biel Maimó
http://bielsys.blogspot.com/
User avatar
cnavarro
Posts: 6558
Joined: Wed Feb 15, 2012 8:25 pm
Location: España
Been thanked: 3 times

Re: XBrowse, ajustar aspecto de las barras de scroll

Post by cnavarro »

Puede ser que algo asi te sirva

Code: Select all | Expand


// Devuelve el valor
HB_FUNC ( NONCLIENT )
{
   
   NONCLIENTMETRICS mi;
   
   memset( ( char * ) &mi, 0, sizeof( NONCLIENTMETRICS ) );
   mi.cbSize = sizeof( NONCLIENTMETRICS );
   SystemParametersInfo( SPI_GETNONCLIENTMETRICS, 0, &mi, 0);

   hb_retnl( ( LONG ) mi.iScrollWidth );
   //hb_retnl( ( LONG ) mi.iCaptionHeight ) ;
   //hb_retnl( ( LONG ) mi.iMenuHeight ) ;
   //hb_retnl( ( LONG ) mi.iScrollHeight  ) ;  // Scroll Horizontal
   
   // Grabar el valor?

   //mi.iScrollWidth = hb_parnl( 1 );
   //SystemParametersInfo( SPI_SETNONCLIENTMETRICS, Sizeof( mi ), &mi, 0 ); //SPIF_SENDCHANGE);  // Update Win.ini

}

 
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
AngelSalom
Posts: 727
Joined: Fri Oct 07, 2005 7:38 am
Location: Benicarló (Castellón ) - España
Has thanked: 1 time
Contact:

Re: XBrowse, ajustar aspecto de las barras de scroll

Post by AngelSalom »

Hola cnavarro, gracias por la función. Devuelve correctamente el ancho actual pero al descomentar el apartado de grabar el valor y compilar obtengo este error :

Code: Select all | Expand

Warning W8065 .\\prg\\conta.prg 1166: Call to function 'Sizeof' with no prototype in function HB_FUN_NONCLIENT
Angel Salom
Visionwin Software - https://www.visionwin.com
------------------------------------------------------------
fwh 19.05 - harbour 3.2 - bcc 7.4
User avatar
cnavarro
Posts: 6558
Joined: Wed Feb 15, 2012 8:25 pm
Location: España
Been thanked: 3 times

Re: XBrowse, ajustar aspecto de las barras de scroll

Post by cnavarro »

AngelSalom wrote:Hola cnavarro, gracias por la función. Devuelve correctamente el ancho actual pero al descomentar el apartado de grabar el valor y compilar obtengo este error :

Code: Select all | Expand

Warning W8065 .\\prg\\conta.prg 1166: Call to function 'Sizeof' with no prototype in function HB_FUN_NONCLIENT


Angel, puedes probar

Code: Select all | Expand


sizeof( NONCLIENTMETRICS )
 
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
AngelSalom
Posts: 727
Joined: Fri Oct 07, 2005 7:38 am
Location: Benicarló (Castellón ) - España
Has thanked: 1 time
Contact:

Re: XBrowse, ajustar aspecto de las barras de scroll

Post by AngelSalom »

Esto es lo que obtengo

Code: Select all | Expand

Error E2108 .\\prg\\CONTA.prg 1166: Improper use of typedef 'NONCLIENTMETRICS' in function HB_FUN_NONCLIENT
Warning W8065 .\\prg\\CONTA.prg 1166: Call to function 'Sizeof' with no prototype in function HB_FUN_NONCLIENT
*** 1 errors in Compile ***
 
Angel Salom
Visionwin Software - https://www.visionwin.com
------------------------------------------------------------
fwh 19.05 - harbour 3.2 - bcc 7.4
User avatar
cnavarro
Posts: 6558
Joined: Wed Feb 15, 2012 8:25 pm
Location: España
Been thanked: 3 times

Re: XBrowse, ajustar aspecto de las barras de scroll

Post by cnavarro »

Intenta en minúsculas: sizeof( mi )
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
AngelSalom
Posts: 727
Joined: Fri Oct 07, 2005 7:38 am
Location: Benicarló (Castellón ) - España
Has thanked: 1 time
Contact:

Re: XBrowse, ajustar aspecto de las barras de scroll

Post by AngelSalom »

¡Ahora perfecto! Muchas gracias!!
Angel Salom
Visionwin Software - https://www.visionwin.com
------------------------------------------------------------
fwh 19.05 - harbour 3.2 - bcc 7.4
User avatar
cnavarro
Posts: 6558
Joined: Wed Feb 15, 2012 8:25 pm
Location: España
Been thanked: 3 times

Re: XBrowse, ajustar aspecto de las barras de scroll*Solucionado

Post by cnavarro »

Angel, si no te importa, informa del resultado de tus pruebas
Saludos
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
AngelSalom
Posts: 727
Joined: Fri Oct 07, 2005 7:38 am
Location: Benicarló (Castellón ) - España
Has thanked: 1 time
Contact:

Re: XBrowse, ajustar aspecto de las barras de scroll*Solucionado

Post by AngelSalom »

Aquí va un ejemplo funcional probando todos los parámetros, el funcionamiento es espectacular ya que se redimensiona todo "al vuelo" ... y de paso aprovecho para preguntarte cómo puedo hacer un hb_ret con un array de los valores antes de modificarlos (para al salir de la aplicación poder dejarlo todo "como estaba")

Code: Select all | Expand

#include "fivewin.ch"
#include "xbrowse.ch"

Function Main()
Local oDlg, oBrw

   DEFINE DIALOG oDlg SIZE 300, 200

   @ 0, 0 XBROWSE oBrw OF oDlg ARRAY { { "one","two","three" } } AUTOCOLS
     
   oBrw:CreateFromCode()
     
   ACTIVATE DIALOG oDlg CENTER ON INIT ( oDlg:oClient := oBrw, oDlg:Resize(), NonClient (25,25,20,20) )
 
Return (nil)

#pragma BEGINDUMP
#include "windows.h"
#include "hbapi.h"
#include "hbcomp.h"


HB_FUNC ( NONCLIENT )
{
   
   NONCLIENTMETRICS mi;
   
   memset( ( char * ) &mi, 0, sizeof( NONCLIENTMETRICS ) );
   mi.cbSize = sizeof( NONCLIENTMETRICS );
   SystemParametersInfo( SPI_GETNONCLIENTMETRICS, 0, &mi, 0);

   // ¿Cómo devolver un array con los valores?
   
   //hb_retnl( ( LONG ) mi.iScrollWidth );
   //hb_retnl( ( LONG ) mi.iCaptionHeight ) ;
   //hb_retnl( ( LONG ) mi.iMenuHeight ) ;
   //hb_retnl( ( LONG ) mi.iScrollHeight  ) ;  // Scroll Horizontal
   
   // Grabar el valor

   mi.iScrollWidth = hb_parnl( 1 );
   mi.iScrollHeight = hb_parnl( 2 );
   mi.iCaptionHeight = hb_parnl ( 3 );
   mi.iMenuHeight = hb_parnl ( 4 );
   
   SystemParametersInfo( SPI_SETNONCLIENTMETRICS, sizeof( mi ), &mi, 0 ); //SPIF_SENDCHANGE);  // Update Win.ini

}

#pragma ENDDUMP

 
Angel Salom
Visionwin Software - https://www.visionwin.com
------------------------------------------------------------
fwh 19.05 - harbour 3.2 - bcc 7.4
User avatar
AngelSalom
Posts: 727
Joined: Fri Oct 07, 2005 7:38 am
Location: Benicarló (Castellón ) - España
Has thanked: 1 time
Contact:

Re: XBrowse, ajustar aspecto de las barras de scroll*Solucionado

Post by AngelSalom »

Respecto a devolver un array con los valores antes de modificarlos estoy probando con este código dentro de la función nonclient

Code: Select all | Expand

hb_reta(4);
   hb_stornl(mi.iScrollWidth, -1, 1);
   hb_stornl(mi.iScrollHeight,-1, 2);
   hb_stornl(mi.iCaptionHeight, -1, 3);
   hb_stornl(mi.iMenuHeight, -1, 4);
   


Pero al compilarlo arroja :

Code: Select all | Expand


Compiling...
Harbour 3.1.0dev (Rev. 17025)
Copyright (c) 1999-2011, http://harbour-project.org/
Compiling 'testscr.prg' and generating preprocessed output to 'testscr.ppo'...
Lines 4096, Functions/Procedures 1
Generating C source output to 'testscr.c'... Done.
Borland C++ 5.82 for Win32 Copyright (c) 1993, 2005 Borland
testscr.c:
Error E2227 testscr.prg 37: Extra parameter in call to hb_stornl in function HB_FUN_NONCLIENT
Error E2227 testscr.prg 38: Extra parameter in call to hb_stornl in function HB_FUN_NONCLIENT
Error E2227 testscr.prg 39: Extra parameter in call to hb_stornl in function HB_FUN_NONCLIENT
Error E2227 testscr.prg 40: Extra parameter in call to hb_stornl in function HB_FUN_NONCLIENT
*** 4 errors in Compile ***
* Linking errors *
 
Angel Salom
Visionwin Software - https://www.visionwin.com
------------------------------------------------------------
fwh 19.05 - harbour 3.2 - bcc 7.4
Post Reply