Project

General

Profile

slx.p

Igor Skornyakov, 07/18/2015 05:35 AM

Download (1.99 KB)

 
1
DEFINE VARIABLE mode AS CHARACTER NO-UNDO FORMAT "X(1)".
2
INPUT FROM TERMINAL.
3
  SET mode LABEL "Please enter mode [D/S] [S]"  WITH SIDE-LABELS NO-BOX FRAME q.
4
INPUT CLOSE.
5

    
6
IF mode = "" THEN mode = "S".
7

    
8
DEFINE VARIABLE sl AS CHARACTER NO-UNDO
9
  VIEW-AS SELECTION-LIST  
10
  INNER-LINES 5
11
  INNER-CHARS 10 
12
  LIST-ITEMS "l0", "l1", "l2", "l3", "l4".
13
.
14

    
15
DEFINE VARIABLE fi AS INTEGER FORMAT "$>,>>>ABC" NO-UNDO VIEW-AS FILL-IN.
16

    
17
def frame fl fi SKIP(1) sl /* at column 2 row 4 */ with size 20 by 15 /* title "frame" */.
18
def frame fd fi SKIP(1) with size 20 by 15 /* title "frame" */.
19
def var hx as handle.
20
def var hf as handle.
21

    
22
IF mode = "D" THEN DO:
23
  hf = frame fd:handle.
24
  RUN P_Create_SL.
25
END.
26
ELSE DO:
27
  hf = frame fl:HANDLE.  
28
  hx = sl:HANDLE IN frame fl.
29
END.
30
def var l as int.
31

    
32
hf:BOX = false.
33
message "Ready".
34

    
35
on F anywhere do:
36
      hx:frame = hf. 
37
      message "frame assigned".
38
end.
39

    
40
on E anywhere do:
41
      IF mode = "D" THEN
42
        enable all with frame fd.
43
      ELSE
44
        enable all with frame fl.
45

    
46
      message "frame enabled".
47
end.
48

    
49
on X anywhere do:
50
      message "FRAME-<POS>" hx:FRAME-X  hx:FRAME-Y hx:FRAME-COL hx:FRAME-ROW hx:X hx:Y hx:COLUMN hx:ROW hf:BOX.
51
end.
52

    
53
on Y anywhere do:
54
  message "FRAME-<POS>" hx:FRAME-X  hx:FRAME-Y hx:FRAME-COL hx:FRAME-ROW hx:X hx:Y hx:COLUMN hx:ROW hf:BOX.
55
  RUN P_Set_XY(1,1).
56
  RUN P_Set_XY(1,2).
57
  RUN P_Set_XY(1,3).
58
  RUN P_Set_XY(2,1).
59
  RUN P_Set_XY(3,1).
60
  RUN P_Set_XY(4,1).
61
end.
62

    
63
WAIT-FOR WINDOW-CLOSE OF CURRENT-WINDOW.
64

    
65
PROCEDURE P_Create_SL PRIVATE :
66
 
67
    CREATE SELECTION-LIST hx ASSIGN 
68
        INNER-LINES = 5
69
        INNER-CHARS = 10 
70
        LIST-ITEMS  = "l0,l1,l2,l3,l4".
71
 /* 
72
        frame = hf
73
  */
74
       .
75
       message "SELECTION-LIST created".
76

    
77
END PROCEDURE.
78

    
79
PROCEDURE P_Set_XY PRIVATE :
80
    DEFINE INPUT PARAMETER c AS INTEGER NO-UNDO.
81
    DEFINE INPUT PARAMETER r AS INTEGER NO-UNDO.
82
    hx:COLUMN = c.
83
    hx:ROW = r.
84
    message "FRAME-<POS>" hx:FRAME-X  hx:FRAME-Y hx:FRAME-COL hx:FRAME-ROW hx:X hx:Y hx:COLUMN hx:ROW hf:BOX.
85
END PROCEDURE.