ALT- .. KEY and VIRTUAL GRID
Posted: Sat Nov 20, 2021 3:56 pm
Hello,
I use this grid and want to get rid of the ALT-S, ALT-D keys so I made this:
But my replacement for ALT-S refuses to work. And sometimes OnSaveTest() also ignores ALT-S
Somebody has a solution??
Serge
I use this grid and want to get rid of the ALT-S, ALT-D keys so I made this:
But my replacement for ALT-S refuses to work. And sometimes OnSaveTest() also ignores ALT-S
Code: Select all
DEFINE WINDOW Form_1 ...
etc...
@ 10,10 GRID Grid_1 ;
WIDTH nWIDTH ;
HEIGHT nGRID_H ;
HEADERS aHEADERS;
WIDTHS aWIDTHS;
VALUE { 1 , 1 } ;
ROWSOURCE 'F1' ;
COLUMNFIELDS aFIELDS ;
EDIT ;
ALLOWAPPEND ;
ALLOWDELETE ;
COLUMNCONTROLS aCtrls ;
ON SAVE OnSaveTest()
/*
ALT + A --> Append
ALT + D --> Delete
ALT + R --> ReCall
ALT + S --> Save (On Save)
ALT + U --> ClearBuffer
*/
DEFINE BUTTON BT_7
ROW nGRID_H + 20
COL 10
WIDTH 70
HEIGHT 35
ACTION STUFF_KB('K_ALT_S')
CAPTION "Save"
TRANSPARENT TRUE
TOOLTIP "Save"
PICTURE ""
PICTALIGNMENT TOP
END BUTTON
END WINDOW
ACTIVATE WINDOW Form_1
FUNCTION STUFF_KB(X)
/*******************/
Form_1.Grid_1.SetFocus
DO CASE
CASE X == 'K_ALT_S'
KEYBOARD CHR(K_ALT_S)
CASE X == 'K_ALT_A'
KEYBOARD CHR(K_ALT_A)
CASE X == 'K_ALT_D'
KEYBOARD CHR(K_ALT_D)
CASE X == 'K_ALT_R'
KEYBOARD CHR(K_ALT_R)
CASE X == 'K_ALT_U'
KEYBOARD CHR(K_ALT_U)
OTHERWISE
ENDCASE
RETURN
FUNCTION OnSaveTest()
/********************/
LOCAL i
LOCAL s
LOCAL cMark
LOCAL j
//* Show Edited Cells
/********************/
FOR i := 1 To len( This.EditBuffer )
s := ''
nLogicalRow := This.EditBuffer [ i ] [ 1 ]
nLogicalCol := This.EditBuffer [ i ] [ 2 ]
xValue := This.EditBuffer [ i ] [ 3 ]
nPhysicalRow := This.EditBuffer [ i ] [ 4 ]
...etc....
from the old GRID.34\DEMO.PRG by HMG Virtual Grid Demo (c) 2009 Roberto Lopez
Serge