Teclas funcion avanze y retroceso de página

HMG en Español

Moderator: Rathinagiri

rmtarget
Posts: 67
Joined: Sat Jul 04, 2009 7:28 pm

Teclas funcion avanze y retroceso de página

Post by rmtarget »

Hola Amigos:

Tengo una pantalla de captura con muchos datos y la elabore con VIRTUALWIDTH,VIRTUALHEIGHT,WINDOWTYPE PANEL y me puedo desplazar de arriba hacia abajo moviendo con el mouse la barra vertical derecha, pero quiero saber si puedo usar las teclas de Av.Pág y Re. Pág del teclado a efectos de mover la pantalla de igual forma, de arriba hacia abajo.

Gracias de antemano y cordiales saludos desde mexico city
[u]Moderator Notes[/u] (Pablo César) wrote:Topic moved from Board index\HMG News and Help\HMG General Help due topic is being in Spanish.
De antemano muchas gracias y saludos !!
Atte.
Rene Mtz. (méxico city)
User avatar
Pablo César
Posts: 4059
Joined: Wed Sep 08, 2010 1:18 pm
Location: Curitiba - Brasil

Teclas funcion avanze y retroceso de página

Post by Pablo César »

Creiria que no seria imposible, pero haberia que colocar um timer al iniciar para que esté leyendo el buffer del teclado a cada tanto. En mi opinion, me parece un trabajo de redundância totalmente desnecesário, visto que no segue el critério de padronizacion de sistemas en Windows. Acostumbrar a los usuários a trabajar como si fuera sistemas como a la Clipper te trairia muchos inconvernientes en el futuro, ya que no funciona de la misma forma el desenvolvimiento en GUI.
HMGing a better world
"Matter tells space how to curve, space tells matter how to move."
Albert Einstein
User avatar
srvet_claudio
Posts: 2224
Joined: Thu Feb 25, 2010 8:43 pm
Location: Uruguay
Contact:

Re: Teclas funcion avanze y retroceso de página

Post by srvet_claudio »

rmtarget wrote:Hola Amigos:

Tengo una pantalla de captura con muchos datos y la elabore con VIRTUALWIDTH,VIRTUALHEIGHT,WINDOWTYPE PANEL y me puedo desplazar de arriba hacia abajo moviendo con el mouse la barra vertical derecha, pero quiero saber si puedo usar las teclas de Av.Pág y Re. Pág del teclado a efectos de mover la pantalla de igual forma, de arriba hacia abajo.

Gracias de antemano y cordiales saludos desde mexico city
Hi Rmtarget
See this demo.
Regards,
Claudio.

Code: Select all

#include "hmg.ch"

Function Main

	SET SCROLLSTEP TO 10

	DEFINE WINDOW Win_1 ;
		ROW 0 ;
		COL 0 ;
		WIDTH 400 ;
		HEIGHT 400 ;
		TITLE 'HMG Panel Window Demo' ;
		WINDOWTYPE MAIN  

      #define WM_VSCROLL    277
      #define SB_PAGEUP       2
      #define SB_PAGEDOWN     3

      ON KEY PRIOR OF Win_1 ACTION SendMessage ( GetFormHandle("Win_2") , WM_VSCROLL , SB_PAGEUP , 0 )
      ON KEY NEXT  OF Win_1 ACTION SendMessage ( GetFormHandle("Win_2") , WM_VSCROLL , SB_PAGEDOWN , 0 )
      
		DEFINE WINDOW Win_2 ;
			ROW 30 ;
			COL 30 ;
			WIDTH 300 ;
			HEIGHT 200 ;
			VIRTUALWIDTH 400 ;
			VIRTUALHEIGHT 400 ;
			WINDOWTYPE PANEL

			DEFINE LABEL LABEL_1
				ROW		10
				COL		10
				VALUE		'Panel windows...'
				WIDTH		300
			END LABEL

			DEFINE BUTTON BUTTON_1
				ROW		40
				COL		10
				CAPTION		'Click Me!'
				ACTION		MsgInfo('Clicked!')
			END BUTTON

			DEFINE LABEL LABEL_2
				ROW		90
				COL		10
				VALUE		"Can do this!"
				WIDTH		300
			END LABEL

			DEFINE TEXTBOX TEXT_1
				ROW		120
				COL		10
				VALUE		'Test'
			END TEXTBOX

			DEFINE TEXTBOX TEXT_2
				ROW		150
				COL		10
				VALUE		'Test'
			END TEXTBOX

			DEFINE TEXTBOX TEXT_3
				ROW		180
				COL		10
				VALUE		'Test'
			END TEXTBOX
	
			DEFINE TEXTBOX TEXT_4
				ROW		210
				COL		10
				VALUE		'Test'
			END TEXTBOX

			DEFINE TEXTBOX TEXT_5
				ROW		240
				COL		10
				VALUE		'Test'
			END TEXTBOX

		END WINDOW


		DEFINE BUTTON BUTTON_1
			ROW		300
			COL		10
			WIDTH		200
			CAPTION		'Click Me!'
			ACTION		MsgInfo('Clicked!')
		END BUTTON


	END WINDOW


	Win_1.Center 

	Activate Window Win_1 

Return

Best regards.
Dr. Claudio Soto
(from Uruguay)
http://srvet.blogspot.com
User avatar
Pablo César
Posts: 4059
Joined: Wed Sep 08, 2010 1:18 pm
Location: Curitiba - Brasil

Teclas funcion avanze y retroceso de página

Post by Pablo César »

Code: Select all

#define WM_VSCROLL    277
#define SB_PAGEUP       2
#define SB_PAGEDOWN     3

ON KEY PRIOR OF Win_1 ACTION SendMessage ( GetFormHandle("Win_2") , WM_VSCROLL , SB_PAGEUP , 0 )
ON KEY NEXT  OF Win_1 ACTION SendMessage ( GetFormHandle("Win_2") , WM_VSCROLL , SB_PAGEDOWN , 0 )
Wow, Dr. Soto ! Perfecto ! Quien sabe, sabe !
HMGing a better world
"Matter tells space how to curve, space tells matter how to move."
Albert Einstein
rmtarget
Posts: 67
Joined: Sat Jul 04, 2009 7:28 pm

Re: Teclas funcion avanze y retroceso de página

Post by rmtarget »

Muchisimas gracias por su valiosa ayuda !!! un abrazo.
De antemano muchas gracias y saludos !!
Atte.
Rene Mtz. (méxico city)
User avatar
andyglezl
Posts: 1461
Joined: Fri Oct 26, 2012 7:58 pm
Location: Guadalajara Jalisco, MX
Contact:

Re: Teclas funcion avanze y retroceso de página

Post by andyglezl »

Hola Dr. Soto, gracias por sus aportaciones !

Probé lo del avance y retroceso de páginas.

Creía que poniendo: SET SCROLLSTEP TO 100
habría una diferencia en cuanto al avance, pero avanza lo mismo
que con 10 ?

Así funciona ?
---------------------------------------------------------------
Hello Dr. Soto, thank you for your contributions!

I tried it the advance and retreat of pages.

I thought putting: SCROLLSTEP SET TO 100
would be a difference in advancing, but advancing the same
that at 10?

How it works?
Andrés González López
Desde Guadalajara, Jalisco. México.
User avatar
srvet_claudio
Posts: 2224
Joined: Thu Feb 25, 2010 8:43 pm
Location: Uruguay
Contact:

Re: Teclas funcion avanze y retroceso de página

Post by srvet_claudio »

andyglezl wrote: I thought putting: SCROLLSTEP SET TO 100
would be a difference in advancing, but advancing the same
that at 10?
How it works?
Yes,
SET SCROLLSTEP TO only works with the messages: SB_LINEUP, SB_LINEDOWN, SB_LINERIGHT and SB_LINELEFT.
It can simulate with the keyboard as:

Code: Select all

#include "hmg.ch"

Function Main

   SET SCROLLSTEP TO 10

   DEFINE WINDOW Win_1 ;
      ROW 0 ;
      COL 0 ;
      WIDTH 400 ;
      HEIGHT 400 ;
      TITLE 'HMG Panel Window Demo' ;
      WINDOWTYPE MAIN  

#define WM_VSCROLL    277
#define SB_VERT         1
#define SB_PAGEUP       2
#define SB_PAGEDOWN     3

//      ON KEY PRIOR OF Win_1 ACTION SendMessage ( GetFormHandle("Win_2") , WM_VSCROLL , SB_PAGEUP , 0 )
//      ON KEY NEXT  OF Win_1 ACTION SendMessage ( GetFormHandle("Win_2") , WM_VSCROLL , SB_PAGEDOWN , 0 )

      DEFINE WINDOW Win_2 ;
         ROW 30 ;
         COL 30 ;
         WIDTH 300 ;
         HEIGHT 200 ;
         VIRTUALWIDTH 400 ;
         VIRTUALHEIGHT 400 ;
         WINDOWTYPE PANEL

         DEFINE LABEL LABEL_1
            ROW      10
            COL      10
            VALUE      'Panel windows...'
            WIDTH      300
         END LABEL

         DEFINE BUTTON BUTTON_1
            ROW      40
            COL      10
            CAPTION      'Click Me!'
            ACTION      MsgInfo('Clicked!')
         END BUTTON

         DEFINE LABEL LABEL_2
            ROW      90
            COL      10
            VALUE      "Can do this!"
            WIDTH      300
         END LABEL

         DEFINE TEXTBOX TEXT_1
            ROW      120
            COL      10
            VALUE      'Test'
         END TEXTBOX

         DEFINE TEXTBOX TEXT_2
            ROW      150
            COL      10
            VALUE      'Test'
         END TEXTBOX

         DEFINE TEXTBOX TEXT_3
            ROW      180
            COL      10
            VALUE      'Test'
         END TEXTBOX
   
         DEFINE TEXTBOX TEXT_4
            ROW      210
            COL      10
            VALUE      'Test'
         END TEXTBOX

         DEFINE TEXTBOX TEXT_5
            ROW      240
            COL      10
            VALUE      'Test'
         END TEXTBOX

      END WINDOW


      DEFINE BUTTON BUTTON_1
         ROW      300
         COL      10
         WIDTH      200
         CAPTION      'Click Me!'
         ACTION      MsgInfo('Clicked!')
      END BUTTON


   END WINDOW

NewStep :=  100

NewStep := IF (NewStep < 20, 20, NewStep)
hWnd := GetFormHandle("Win_2")
ON KEY PRIOR OF Win_1 ACTION {|| SetScrollPos (hWnd, SB_VERT, GetScrollPos(hWnd, SB_VERT) - NewStep -20, .T.), SendMessage (hWnd, WM_VSCROLL , SB_PAGEUP,    0 )}
ON KEY NEXT  OF Win_1 ACTION {|| SetScrollPos (hWnd, SB_VERT, GetScrollPos(hWnd, SB_VERT) + NewStep -20, .T.), SendMessage (hWnd, WM_VSCROLL , SB_PAGEDOWN , 0 )}

   Win_1.Center 

   Activate Window Win_1 

Return
Best regards.
Dr. Claudio Soto
(from Uruguay)
http://srvet.blogspot.com
User avatar
srvet_claudio
Posts: 2224
Joined: Thu Feb 25, 2010 8:43 pm
Location: Uruguay
Contact:

Re: Teclas funcion avanze y retroceso de página

Post by srvet_claudio »

In the future I will add: SET SCROLLPAGE TO
Best regards.
Dr. Claudio Soto
(from Uruguay)
http://srvet.blogspot.com
Leopoldo Blancas
Posts: 388
Joined: Wed Nov 21, 2012 7:14 pm
Location: México

Re: Teclas funcion avanze y retroceso de página

Post by Leopoldo Blancas »

Como dijo Dany...
Wow, Dr. Soto ! Perfecto ! Quien sabe, sabe !
Saludos
Polo
User avatar
andyglezl
Posts: 1461
Joined: Fri Oct 26, 2012 7:58 pm
Location: Guadalajara Jalisco, MX
Contact:

Re: Teclas funcion avanze y retroceso de página

Post by andyglezl »

Muy cierto !
Andrés González López
Desde Guadalajara, Jalisco. México.
Post Reply