Page 1 of 2

Teclas funcion avanze y retroceso de página

Posted: Tue Jun 11, 2013 10:47 pm
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.

Teclas funcion avanze y retroceso de página

Posted: Wed Jun 12, 2013 12:48 am
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.

Re: Teclas funcion avanze y retroceso de página

Posted: Wed Jun 12, 2013 3:37 am
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


Teclas funcion avanze y retroceso de página

Posted: Wed Jun 12, 2013 12:09 pm
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 !

Re: Teclas funcion avanze y retroceso de página

Posted: Thu Jun 13, 2013 12:33 am
by rmtarget
Muchisimas gracias por su valiosa ayuda !!! un abrazo.

Re: Teclas funcion avanze y retroceso de página

Posted: Thu Jun 13, 2013 4:33 pm
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?

Re: Teclas funcion avanze y retroceso de página

Posted: Thu Jun 13, 2013 11:11 pm
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

Re: Teclas funcion avanze y retroceso de página

Posted: Thu Jun 13, 2013 11:18 pm
by srvet_claudio
In the future I will add: SET SCROLLPAGE TO

Re: Teclas funcion avanze y retroceso de página

Posted: Fri Jun 14, 2013 12:27 am
by Leopoldo Blancas
Como dijo Dany...
Wow, Dr. Soto ! Perfecto ! Quien sabe, sabe !
Saludos
Polo

Re: Teclas funcion avanze y retroceso de página

Posted: Fri Jun 14, 2013 12:28 am
by andyglezl
Muy cierto !