keyboard chr(13) or enter

General Help regarding HMG, Compilation, Linking, Samples

Moderator: Rathinagiri

franco
Posts: 877
Joined: Sat Nov 02, 2013 5:42 am
DBs Used: DBF
Location: Canada

keyboard chr(13) or enter

Post by franco »

I am trying to
Button_1 action { { form_1.button_2.setfocus}, {keyboard chr(15)}}
Or is it hmg_keyboard.
I want the program to press button_1. I can not find in help and can not get to work.
Thanks in advance.
All The Best,
Franco
Canada
User avatar
andyglezl
Posts: 1461
Joined: Fri Oct 26, 2012 7:58 pm
Location: Guadalajara Jalisco, MX
Contact:

Re: keyboard chr(13) or enter

Post by andyglezl »

Code: Select all

Button_1 action  { || form_1.button_2.setfocus, keyboard chr(15) }
Andrés González López
Desde Guadalajara, Jalisco. México.
franco
Posts: 877
Joined: Sat Nov 02, 2013 5:42 am
DBs Used: DBF
Location: Canada

Re: keyboard chr(13) or enter

Post by franco »

Thanks Andy, do I need a additional .ch include, I get a chr'"' error

Code: Select all


#include "HMG.CH"

FUNCTION main()

  PRIVATE xeck0 ,  xeck1 ,  xeck2 ,  xeck3

  IF !FILE('xeckyn.mem')
     xeck0  := .T.
     xeck1  := .T.
     xeck2  := .T.
     xeck3  := .T.
     SAVE TO xeckyn.mem ALL LIKE  xeck*
  ENDIF

 DEFINE WINDOW Form_1 MAIN AT 20,20 WIDTH 500 HEIGHT 200 NOSIZE NOMAXIMIZE
 
  RESTORE FROM xeckyn.mem ADDITIVE
 
                  DEFINE CHECKBOX checkbox_0
	                  ROW 10
			  COL 30
			  WIDTH 120
			  HEIGHT 20
			  VALUE xeck0  //.t.
			  CAPTION "Select/Unselect All"
                          ONCHANGE ReverseCheck()
                   END CHECKBOX

                   DEFINE CHECKBOX checkbox_1
	                  ROW 30
			  COL 30
			  WIDTH 120
			  HEIGHT 20
			  VALUE  xeck1  //.t.
			  CAPTION "Check 1"
                   END CHECKBOX

                   DEFINE CHECKBOX checkbox_2
	                  ROW 50
			  COL 30
			  WIDTH 120
			  HEIGHT 20
			  VALUE  xeck2  //.t.
			  CAPTION "Check 2"
                   END CHECKBOX
		
                   DEFINE CHECKBOX checkbox_3
	                  ROW 70
			  COL 30
			  WIDTH 120
			  HEIGHT 20
			  VALUE  xeck3  //.t.
			  CAPTION "Check 3"
                   END CHECKBOX

		   DEFINE BUTTON button_1
		          ROW 100
			  COL 30
			  WIDTH 120
			  HEIGHT 30
			  CAPTION "SAVE && EXIT"
                          ACTION      SaveXecky()  
			  PICTURE "save"
			  PICTALIGNMENT LEFT
		   END BUTTON	  

 		DEFINE BUTTON button_2
		          ROW 100
			  COL 160
			  WIDTH 120
			  HEIGHT 30
			  CAPTION "Run save"
                          ACTION   { || form_1.button_1.setfocus, keyboard chr(15) }   
			  PICTURE "save"
			  PICTALIGNMENT LEFT
		   END BUTTON	  
    END WINDOW


  CENTER WINDOW Form_1
  ACTIVATE WINDOW Form_1

RETURN


*----------------------------------*
  FUNCTION ReverseCheck()
*----------------------------------*
  LOCAL aChecboQ , i

   aChecboQ  := ( IIF( Form_1.checkbox_0.Value,"True","False") )
 
   IF aChecboQ = "True"  
     
     Form_1.checkbox_0.Value := .T.
     Form_1.checkbox_1.Value := .T.
     Form_1.checkbox_2.Value := .T.
     Form_1.checkbox_3.Value := .T.
     xeck0  :=   .T.
     xeck1  :=   .T.
     xeck2  :=   .T.
     xeck3  :=   .T.

     SAVE TO xeckyn.mem ALL LIKE  xeck*

   ELSE
         
     Form_1.checkbox_0.Value := .F.
     Form_1.checkbox_1.Value := .F.
     Form_1.checkbox_2.Value := .F.
     Form_1.checkbox_3.Value := .F.

     xeck0  :=   .F.
     xeck1  :=   .F.
     xeck2  :=   .F.
     xeck3  :=   .F.

     SAVE TO xeckyn.mem ALL LIKE  xeck*
 
  ENDIF

RETURN NIL

*----------------------------------*
  FUNCTION SaveXecky()
*----------------------------------*

   LOCAL bChec00 , bChec01 , bChec02 , bChec03 
	msgbox('worked')
	return

     

All The Best,
Franco
Canada
User avatar
andyglezl
Posts: 1461
Joined: Fri Oct 26, 2012 7:58 pm
Location: Guadalajara Jalisco, MX
Contact:

Re: keyboard chr(13) or enter

Post by andyglezl »

Maybe...

ACTION { || form_1.button_1.setfocus, Keybd_Event( chr(15), chr(15), Nil, Nil ) }


But, Chr(13) or enter is not the same to Chr(15) ???
Last edited by andyglezl on Thu Dec 10, 2020 3:31 pm, edited 1 time in total.
Andrés González López
Desde Guadalajara, Jalisco. México.
User avatar
mol
Posts: 3774
Joined: Thu Sep 11, 2008 5:31 am
Location: Myszków, Poland
Contact:

Re: keyboard chr(13) or enter

Post by mol »

You can call button's ACTION immediately, without sending chr(13) to keyboard buffer - this console trick is not needed in windows application, I think
franco
Posts: 877
Joined: Sat Nov 02, 2013 5:42 am
DBs Used: DBF
Location: Canada

Re: keyboard chr(13) or enter

Post by franco »

Andy could not get to work.
Mol thanks for thought.
I got working by using button_1 on gotfocus instead of action (took out action)
to get to work from different function I just added at end of function
form_1.button_1.setfocus
form_1.button_1.setfocus

for some unknown reason I had to set focus twice, but worked.
All The Best,
Franco
Canada
User avatar
Claudio Ricardo
Posts: 367
Joined: Tue Oct 27, 2020 3:38 am
DBs Used: DBF, MySQL, MariaDB
Location: Bs. As. - Argentina

Re: keyboard chr(13) or enter

Post by Claudio Ricardo »

Maybe try change control order... first control = first focus... focus follow control order.
Corrige al sabio y lo harás más sabio, Corrige al necio y lo harás tu enemigo.
WhatsApp / Telegram: +54 911-63016162
User avatar
andyglezl
Posts: 1461
Joined: Fri Oct 26, 2012 7:58 pm
Location: Guadalajara Jalisco, MX
Contact:

Re: keyboard chr(13) or enter

Post by andyglezl »

Quizá de ésta forma te funcione...
*------------------------------------------
Maybe this way it works for you ...

Code: Select all


#include "HMG.CH"

FUNCTION main()

  PRIVATE xeck0 ,  xeck1 ,  xeck2 ,  xeck3

  IF !FILE('xeckyn.mem')
     xeck0  := .T.
     xeck1  := .T.
     xeck2  := .T.
     xeck3  := .T.
     SAVE TO xeckyn.mem ALL LIKE  xeck*
  ENDIF

 DEFINE WINDOW Form_1 MAIN AT 20,20 WIDTH 500 HEIGHT 200 NOSIZE NOMAXIMIZE
 
  RESTORE FROM xeckyn.mem ADDITIVE
 
*		DEFINE CHECKBOX checkbox_0
*	        ROW 10
*			COL 30
*			WIDTH 120
*			HEIGHT 20
*			VALUE xeck0  //.t.
*			CAPTION "Select/Unselect All"
*            ONCHANGE ReverseCheck()
*        END CHECKBOX

		DEFINE RADIOGROUP RG_Select
		    ROW 10
            COL 30
            OPTIONS { "Select ALL", "Unselect All" }
            VALUE 1
            WIDTH 400
            SPACING 150
            FONTNAME "Verdana"
            FONTSIZE 9
            ONCHANGE ReverseCheck()
            HORIZONTAL .T.
		END RADIOGROUP

        DEFINE CHECKBOX checkbox_1
	        ROW 40
			COL 30
			WIDTH 120
			HEIGHT 20
			VALUE  xeck1  //.t.
			CAPTION "Check 1"
        END CHECKBOX

        DEFINE CHECKBOX checkbox_2
	        ROW 60
			COL 30
			WIDTH 120
			HEIGHT 20
			VALUE  xeck2  //.t.
			CAPTION "Check 2"
        END CHECKBOX
		
        DEFINE CHECKBOX checkbox_3
	        ROW 80
			COL 30
			WIDTH 120
			HEIGHT 20
			VALUE  xeck3  //.t.
			CAPTION "Check 3"
        END CHECKBOX

		DEFINE BUTTON button_1
		    ROW 120
			COL 30
			WIDTH 120
			HEIGHT 30
			CAPTION "SAVE && EXIT"
            ACTION  { || SaveXecky(), Form_1.Release }
			PICTURE "save"
			PICTALIGNMENT LEFT
		END BUTTON	  
*
* 		DEFINE BUTTON button_2
*		    ROW 100
*			COL 160
*			WIDTH 120
*			HEIGHT 30
*			CAPTION "Run save"
*            ACTION { || form_1.button_1.setfocus, Keybd_Event( chr(15), chr(15), NiL, NiL ) } 
*			PICTURE "save"
*			PICTALIGNMENT LEFT
*		END BUTTON	
  
    END WINDOW

  CENTER WINDOW Form_1
  ACTIVATE WINDOW Form_1

RETURN

FUNCTION ReverseCheck()
	IF Form_1.RG_Select.Value = 1
		Form_1.checkbox_1.Value := .T.
		Form_1.checkbox_2.Value := .T.
		Form_1.checkbox_3.Value := .T.
	ELSE
		Form_1.checkbox_1.Value := .F.
		Form_1.checkbox_2.Value := .F.
		Form_1.checkbox_3.Value := .F.	
	ENDIF
	SaveXecky()
RETURN
**----------------------------------*
*  FUNCTION ReverseCheck()
**----------------------------------*
*  LOCAL aChecboQ , i
*
*   aChecboQ  := ( IIF( Form_1.checkbox_0.Value,"True","False") )
* 
*   IF aChecboQ = "True"  
*     
*     Form_1.checkbox_0.Value := .T.
*     Form_1.checkbox_1.Value := .T.
*     Form_1.checkbox_2.Value := .T.
*     Form_1.checkbox_3.Value := .T.
*     xeck0  :=   .T.
*     xeck1  :=   .T.
*     xeck2  :=   .T.
*     xeck3  :=   .T.
*
*     SAVE TO xeckyn.mem ALL LIKE  xeck*
*
*   ELSE
*         
*     Form_1.checkbox_0.Value := .F.
*     Form_1.checkbox_1.Value := .F.
*     Form_1.checkbox_2.Value := .F.
*     Form_1.checkbox_3.Value := .F.
*
*     xeck0  :=   .F.
*     xeck1  :=   .F.
*     xeck2  :=   .F.
*     xeck3  :=   .F.
*
*     SAVE TO xeckyn.mem ALL LIKE  xeck*
* 
*  ENDIF
*
*RETURN NIL

*----------------------------------*
FUNCTION SaveXecky()
*----------------------------------*
		*xeck0 := Form_1.checkbox_0.Value
		xeck1 := Form_1.checkbox_1.Value
		xeck2 := Form_1.checkbox_2.Value
		xeck3 := Form_1.checkbox_3.Value
		SAVE TO xeckyn.mem ALL LIKE  xeck*
		msgbox('worked')
return
Andrés González López
Desde Guadalajara, Jalisco. México.
franco
Posts: 877
Joined: Sat Nov 02, 2013 5:42 am
DBs Used: DBF
Location: Canada

Re: keyboard chr(13) or enter

Post by franco »

This is what I needed and this does work.
In my main program not my upper sample I found my problem, I had changed a relation in a report and did not set it back.
This sample is what I needed . _pushkey()

Code: Select all


#include "HMG.CH"


FUNCTION main()
	DEFINE WINDOW Form_1 ;
		AT 0,0 ;
		WIDTH 800 HEIGHT 200 ;
		TITLE 'HMG Demo' ;
		child 
		

		DEFINE BUTTON button_1
		          ROW 100
			  COL 290
			  WIDTH 120
			  HEIGHT 30
			  CAPTION "SAVE && EXIT"
                          ACTION    Form_1.release 

		   END BUTTON	  

 
 
		   DEFINE BUTTON button_2
		          ROW 100
			  COL 30
			  WIDTH 120
			  HEIGHT 30
			  CAPTION "DO SOMETHING"
			 ACTION { ||{MSGBOX('Do Something')}, {Form_1.Button_3.setfocus} } 

		   END BUTTON	  

 		DEFINE BUTTON button_3
		          ROW 100
			  COL 160
			  WIDTH 120
			  HEIGHT 30
			  CAPTION "Run save"
                          ACTION   runbutton1()

		   END BUTTON	  

   END WINDOW
	

  CENTER WINDOW Form_1
  ACTIVATE WINDOW Form_1

RETURN


FUNCTION RUNBUTTON1
MSGBOX('How Are You')
Form_1.Button_2.setfocus
_pushkey(VK_RETURN)

return
Thanks to all..
All The Best,
Franco
Canada
User avatar
andyglezl
Posts: 1461
Joined: Fri Oct 26, 2012 7:58 pm
Location: Guadalajara Jalisco, MX
Contact:

Re: keyboard chr(13) or enter

Post by andyglezl »

Bueno, cada cabeza es un mundo...
*------------------------------------------------
Well, each head is a world ...


No necesitas para nada la función RUNBUTTON1, simplemente duplica
la acción del boton2 en el boton3 y listo.
*----------------------------------------
You don't need the RUNBUTTON1 function at all, just duplicate
the action of button2 on button3 and voila.

Code: Select all

FUNCTION RUNBUTTON1
MSGBOX('How Are You')
Form_1.Button_2.setfocus
_pushkey(VK_RETURN)
return

DEFINE BUTTON button_3
ACTION MSGBOX('Do Something')
Andrés González López
Desde Guadalajara, Jalisco. México.
Post Reply