-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDeleteMultiplicationTable.prg
More file actions
130 lines (67 loc) · 2.5 KB
/
Copy pathDeleteMultiplicationTable.prg
File metadata and controls
130 lines (67 loc) · 2.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
*-----------------------------------------------------------------------------*
* MultiplicationTable | DeleteMultiplicationTable.prg
*-----------------------------------------------------------------------------*
#include "mpt_hmg.ch"
*-----------------------------------------------------------------------------*
*-----------------------------------------------------------------------------*
PROCEDURE DeleteMultiplicationTable( xnMulti )
*-----------------------------------------------------------------------------*
LOCAL nBlockSize := 60
LOCAL nBreak := 4
LOCAL maxX := 10
LOCAL maxY := 10
LOCAL nPosition
LOCAL nPosX
LOCAL nPosY
LOCAL nMultiplicationX
LOCAL nMultiplicationY
LOCAL cMultiplicationValue
LOCAL cLabel
DEFAULT xnMulti := 1
IF xnMulti == 2
nBlockSize := nBlockSize / 2
nBreak := nBreak / 2
maxX := maxX * 2
maxY := maxY * 2
ENDIF
nPosition := ( 1536 / 2 ) - ( ( maxX * nBlockSize ) / 2 ) - ( ( nBlockSize - 10 ) / 2 )
// X -> 1..10 , 1..20
nPosY := 1
FOR nPosX := 1 TO maxX
nMultiplicationX := STRZERO( nPosX , 3)
IF VAL ( nMultiplicationX ) < 100
nMultiplicationX := SUBSTR( nMultiplicationX , 2 , 2 )
ENDIF
cLabel := "Label_X_" + nMultiplicationX
IF IsControlDefined( &cLabel , win_Main )
DoMethod( "win_Main" , cLabel , "Release" )
ENDIF
NEXT nPosX
// Y -> 1..10 , 1..20
nPosX := 1
FOR nPosY := 1 TO maxY
nMultiplicationY := STRZERO( nPosY , 3)
IF VAL ( nMultiplicationY ) < 100
nMultiplicationY := SUBSTR( nMultiplicationY , 2 , 2 )
ENDIF
cLabel := "Label_Y_" + nMultiplicationY
IF IsControlDefined( &cLabel , win_Main )
DoMethod( "win_Main" , cLabel , "Release" )
ENDIF
NEXT nPosY
FOR nPosY := 1 TO maxY
FOR nPosX := 1 TO maxX
cMultiplicationValue := STRZero( nPosX + ( 10 * ( nPosY - 1 ) ) , 3 )
IF VAL ( cMultiplicationValue ) < 100
cMultiplicationValue := SUBSTR( cMultiplicationValue , 2 , 2 )
ENDIF
cLabel := "Label_" + ALLTRIM( STR( nPosX ) ) + "_" + ALLTRIM( STR( nPosY ) )
IF IsControlDefined( &cLabel , win_Main )
DoMethod( "win_Main" , cLabel , "Release" )
ENDIF
NEXT nPosX
NEXT nPosY
RETURN
*-----------------------------------------------------------------------------*
*-----------------------------------------------------------------------------*
*-----------------------------------------------------------------------------*