Code: Select all
/*
* MiniGUI Grid Demo
* (c) 2009 Roberto Lopez
*/
#include "minigui.ch"
Function Main
Local aRows [40] [3]
DEFINE WINDOW Form_1 ;
AT 0,0 ;
WIDTH 640 ;
HEIGHT 400 ;
TITLE 'Mixed Data Type Grid Test' ;
MAIN
ON KEY ESCAPE ACTION Form_1.Release
DEFINE MAIN MENU
DEFINE POPUP 'File'
MENUITEM 'Set Value To {5,2}' ACTION Form_1.Grid_1.Value := {5,2}
MENUITEM 'Set Value To {0,0}' ACTION Form_1.Grid_1.Value := {0,0}
MENUITEM 'Get Value' ACTION GetSelectionValue()
MENUITEM 'Delete Item 5' ACTION Form_1.Grid_1.DeleteItem(5)
MENUITEM 'AddItem' ACTION Form_1.Grid_1.AddItem({'X','X','X'})
MENUITEM 'Delete All Items' ACTION Form_1.Grid_1.DeleteAllItems
END POPUP
END MENU
aRows [1] := {'Simpson','Homer','555-5555'}
aRows [2] := {'Mulder','Fox','324-6432'}
aRows [3] := {'Smart','Max','432-5892'}
aRows [4] := {'Grillo','Pepe','894-2332'}
aRows [5] := {'Kirk','James','346-9873'}
aRows [6] := {'Barriga','Carlos','394-9654'}
aRows [7] := {'Flanders','Ned','435-3211'}
aRows [8] := {'Smith','John','123-1234'}
aRows [9] := {'Pedemonti','Flavio','000-0000'}
aRows [10] := {'Gomez','Juan','583-4832'}
aRows [11] := {'Fernandez','Raul','321-4332'}
aRows [12] := {'Borges','Javier','326-9430'}
aRows [13] := {'Alvarez','Alberto','543-7898'}
aRows [14] := {'Gonzalez','Ambo','437-8473'}
aRows [15] := {'Batistuta','Gol','485-2843'}
aRows [16] := {'Vinazzi','Amigo','394-5983'}
aRows [17] := {'Pedemonti','Flavio','534-7984'}
aRows [18] := {'Samarbide','Armando','854-7873'}
aRows [19] := {'Pradon','Alejandra','???-????'}
aRows [20] := {'Reyes','Monica','432-5836'}
aRows [21] := {'Fernandez','Raul','321-4332'}
aRows [22] := {'Borges','Javier','326-9430'}
aRows [23] := {'Alvarez','Alberto','543-7898'}
aRows [24] := {'Gonzalez','Ambo','437-8473'}
aRows [25] := {'Batistuta','Gol','485-2843'}
aRows [26] := {'Vinazzi','Amigo','394-5983'}
aRows [27] := {'Pedemonti','Flavio','534-7984'}
aRows [28] := {'Samarbide','Armando','854-7873'}
aRows [29] := {'Pradon','Alejandra','???-????'}
aRows [30] := {'Reyes','Monica','432-5836'}
aRows [31] := {'Fernandez','Raul','321-4332'}
aRows [32] := {'Borges','Javier','326-9430'}
aRows [33] := {'Alvarez','Alberto','543-7898'}
aRows [34] := {'Gonzalez','Ambo','437-8473'}
aRows [35] := {'Batistuta','Gol','485-2843'}
aRows [36] := {'Vinazzi','Amigo','394-5983'}
aRows [37] := {'Pedemonti','Flavio','534-7984'}
aRows [38] := {'Samarbide','Armando','854-7873'}
aRows [39] := {'Pradon','Alejandra','???-????'}
aRows [40] := {'Reyes','Monica','432-5836'}
DEFINE GRID Grid_1
ROW 10
COL 10
WIDTH 500
HEIGHT 322
HEADERS {'Column 1','Column 2','Column 3'}
WIDTHS {100,100,100}
ITEMS aRows
VALUE { 1, 1 }
ALLOWEDIT .T.
CELLNAVIGATION .T.
ONCHANGE { || IF( ( _IsControlDefined( "spnRow", "Form_1" ) .AND. ;
_IsControlDefined( "spnCol", "Form_1" ) ) ,;
( aCurValue := this.value,;
SetProperty( "Form_1", "spnRow", "Value", aCurValue[ 1 ] ),;
SetProperty( "Form_1", "spnCol", "Value", aCurValue[ 2 ] ) ), '' ) }
END GRID // Grid_1
@ 13, 520 LABEL lblRow WIDTH 50 VALUE "Row No:"
@ 53, 520 LABEL lblCol WIDTH 50 VALUE "Col No:"
DEFINE SPINNER spnRow
ROW 10
COL 580
WIDTH 50
RANGEMIN 1
RANGEMAX LEN( aRows )
VALUE 1
ONCHANGE { || aCurValue := GetProperty( "Form_1", "Grid_1", "Value" ),;
aCurValue[ 1 ] := this.Value,;
SetProperty( "Form_1", "Grid_1", "Value", aCurValue ) }
END SPINNER // spnRow
DEFINE SPINNER spnCol
ROW 50
COL 580
WIDTH 50
RANGEMIN 1
RANGEMAX 3
VALUE 1
ONCHANGE { || aCurValue := GetProperty( "Form_1", "Grid_1", "Value" ),;
aCurValue[ 2 ] := this.Value,;
SetProperty( "Form_1", "Grid_1", "Value", aCurValue ) }
END SPINNER // spnCol
END WINDOW
Form_1.Grid_1.setfocus
CENTER WINDOW Form_1
ACTIVATE WINDOW Form_1
Return
Function GetSelectionValue
Local a
a := Form_1.Grid_1.Value
MsgInfo( Str ( a [1] ) + ' ' + Str ( a [2] ) )
Return nil