slx.p
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 |
def frame fl sl with size 20 by 15 /* title "frame" */. |
16 |
def frame fd with size 20 by 15 /* title "frame" */. |
17 |
def var hx as handle. |
18 |
def var hf as handle. |
19 |
|
20 |
IF mode = "D" THEN DO: |
21 |
hf = frame fd:handle. |
22 |
RUN P_Create_SL. |
23 |
END. |
24 |
ELSE DO: |
25 |
hf = frame fl:HANDLE. |
26 |
hx = sl:HANDLE IN frame fl. |
27 |
END. |
28 |
def var l as int. |
29 |
|
30 |
hf:BOX = false. |
31 |
|
32 |
message "Ready". |
33 |
|
34 |
on F anywhere do: |
35 |
hx:frame = hf. |
36 |
message "frame assigned". |
37 |
end. |
38 |
|
39 |
on E anywhere do: |
40 |
IF mode = "D" THEN |
41 |
enable all with frame fd. |
42 |
ELSE |
43 |
enable all with frame fl. |
44 |
|
45 |
message "frame enabled". |
46 |
end. |
47 |
|
48 |
on X anywhere do: |
49 |
message "FRAME-<POS>" hx:FRAME-X hx:FRAME-Y hx:FRAME-COL hx:FRAME-ROW hx:X hx:Y hf:BOX. |
50 |
end. |
51 |
|
52 |
WAIT-FOR WINDOW-CLOSE OF CURRENT-WINDOW. |
53 |
|
54 |
PROCEDURE P_Create_SL PRIVATE : |
55 |
|
56 |
CREATE SELECTION-LIST hx ASSIGN |
57 |
INNER-LINES = 5 |
58 |
INNER-CHARS = 10 |
59 |
LIST-ITEMS = "l0,l1,l2,l3,l4". |
60 |
/* |
61 |
frame = hf |
62 |
*/ |
63 |
. |
64 |
message "SELECTION-LIST created". |
65 |
|
66 |
END PROCEDURE. |
67 |
|