Code: Select all
'=============================================================================
'GridTransfer
'Author: RNBW
'1 August 2017
'Includes Row AND Column Headings
'Transfers values from one grid to another
'==========================================
'
' INSTRUCTIONS:
' -------------------
' ENTER DATA INTO THE TOP GRID. WHEN YOU CLICK IN NEXT CELL
' OR CLICK <Click me!> Button, DATA WILL BE TRANSFERRED
' FROM TOP GRID TO BOTTOM GRID
'==========================================
#INCLUDE "window9.bi"
DIM AS LONG NumOfRows=3, NumOfCols=3, id1, id2
DIM AS STRING sRows, sCols, stRow, stCol, stID1, stID2
DIM SHARED AS HWND Window_Main, Button_Click
DIM SHARED AS MSG msg
DIM AS STRING text, text2, result
DIM AS HWND event
DIM AS LONG vPos, hPos, wide, rHt, row, col
'---------------------
' MAIN WINDOW
'---------------------
OpenWindow("Multi-Column Grid",100,100,550,300)
ButtonGadget(1,10,10,100,20, "Click me!")
'-------------------------------
' SET UP THE FIRST GRID
'-------------------------------
vPos = 40: rHt = 20
FOR row = 1 TO NumOfRows
FOR col = 1 TO 3
SELECT CASE col
CASE 1
hPos = 10: wide = 65
CASE 2
hPos = 75: wide = 380
'CASE 3 TO 8
Case 3
hPos = col*65+(455-65*3) : wide = 65
'CASE 9
' hPos = (10+65+380)+(col-3)*65 : wide = 75
END SELECT
stRow = STR(row): stCol = STR(col)
stID1 = "1" + stRow+stCol
id1 = VAL(stID1)
StringGadget(id1, hPos, vPos+rHt*(row-1), wide+1, rHt+1, "", WS_BORDER)
NEXT
NEXT
'----------------------------------
' SET UP THE SECOND GRID
'----------------------------------
rHt = 20
vPos = 40 + rHt * (NumOfRows + 3)
FOR row = 1 TO NumOfRows
FOR col = 1 TO 3
SELECT CASE col
CASE 1
hPos = 10: wide = 65
CASE 2
hPos = 75: wide = 380
'CASE 3 TO 8
Case 3
hPos = col*65+(455-65*3) : wide = 65
' CASE 9
' hPos = (10+65+380)+(col-3)*65 : wide = 75
END SELECT
stRow = STR(row): stCol = STR(col)
stID2 = "2" + stRow+stCol
id2 = VAL(stID2)
StringGadget(id2, hPos, vPos+rHt*(row-1), wide+1, rHt+1,"", WS_BORDER)
NEXT
NEXT
'-----------------------------------
' SET UP HEADINGS IN ROW 1
' IN BOTH GRIDS
'-----------------------------------
row = 1
FOR row = 1 TO 1
FOR col = 2 TO NumOfCols
stRow = STR(row): stCol = STR(col)
stID1 = "1" + stRow+stCol
id1 = VAL(stID1)
SetGadgetText(id1,"Col"+STR(col-1))
stID2 = "2" + stRow+stCol
id2 = VAL(stID2)
SetGadgetText(id2,"Col"+STR(col-1))
NEXT
NEXT
'----------------------------------
' SET UP HEADINGS IN COL 1
' IN BOTH GRIDS
'----------------------------------
col = 1
FOR row = 2 TO NumOfRows
FOR col = 1 TO 1
stRow = STR(row): stCol = STR(col)
stID1 = "1" + stRow+stCol
id1 = VAL(stID1)
SetGadgetText(id1,"Row"+STR(row-1))
stID2 = "2" + stRow+stCol
id2 = VAL(stID2)
SetGadgetText(id2,"Row"+STR(row-1))
NEXT
NEXT
'-----------------------------------------
'TRANSFER DATA ENTERED IN THE FIRST GRID
'INTO THE SECOND GRID.
'-----------------------------------------
DO
var EVENT = WaitEvent()
IF event=WM_LBUTTONDOWN THEN
'-----------------------------------------
' GET VALUES FROM FIRST GRID
' AND TRANSFER TO SECOND GRID
'-----------------------------------------
FOR row AS INTEGER = 2 TO NumOfRows
FOR col AS INTEGER = 2 TO 3
stRow = STR(row): stCol = STR(col)
stID1 = "1" + stRow+stCol
id1 = VAL(stID1)
stID2 = "2" + stRow+stCol
id2 = VAL(stID2)
SetGadgetText(id2,GetGadgetText(id1))
NEXT col
NEXT row
END IF
IF event=EventClose THEN END
LOOP
END