Project

General

Profile

e2.p

Igor Skornyakov, 07/13/2015 12:25 PM

Download (4.11 KB)

 
1
DEFINE VAR h AS HANDLE NO-UNDO.
2
DEFINE FRAME d  WITH SIZE 30 BY 6.
3
DEFINE VAR static AS LOGICAL NO-UNDO.
4

    
5
DEFINE VAR rc AS LOGICAL NO-UNDO.
6

    
7
DEFINE VAR cl AS INTEGER NO-UNDO LABEL "line".
8
DEFINE VAR cc AS INTEGER NO-UNDO LABEL "char".
9
DEFINE VAR co AS INTEGER NO-UNDO LABEL "offset".
10

    
11
DEFINE VAR ss AS INTEGER NO-UNDO LABEL "start".
12
DEFINE VAR se AS INTEGER NO-UNDO LABEL "end".
13

    
14
DEFINE VAR ist AS CHARACTER NO-UNDO LABEL "insert".
15
DEFINE VAR rst AS CHARACTER NO-UNDO LABEL "replace sel".
16

    
17
DEFINE VAR rso AS CHARACTER NO-UNDO LABEL "replace from".
18
DEFINE VAR rsn AS CHARACTER NO-UNDO LABEL "replace to".
19
DEFINE VAR rsf AS INTEGER NO-UNDO LABEL "replace flag".
20

    
21

    
22
DEFINE VARIABLE txt AS CHARACTER NO-UNDO
23
        VIEW-AS EDITOR 
24
        MAX-CHARS 50
25
        NO-BOX
26
        INNER-CHARS 20
27
        INNER-LINES 4
28
        SCROLLBAR-VERTICAL
29
        SCROLLBAR-HORIZONTAL 
30
        LABEL "Text".
31

    
32
DEFINE VAR ht AS HANDLE NO-UNDO.
33
        
34
DEFINE FRAME c cl cc  co.
35
ENABLE ALL WITH FRAME c TITLE "Position".
36

    
37
DEFINE FRAME s ss se.
38
ENABLE ALL WITH FRAME s TITLE "Selection".
39

    
40
DEFINE FRAME m ist rst SKIP(1) rso rsn rsf.
41
ENABLE ALL WITH FRAME m TITLE "Insert/Replace".
42

    
43
DEFINE FRAME f txt.
44
ht = txt:HANDLE IN FRAME f.
45

    
46
/*
47
MESSAGE "box:" ht:BOX 
48
        "line:" ht:CURSOR-LINE "char:"  ht:CURSOR-CHAR "offset:" ht:CURSOR-OFFSET
49
        "len:" ht:LENGTH "lines:" ht:NUM-LINES
50
        "sel:" ht:TEXT-SELECTED "sel1:" ht:SELECTION-START "sel2:" ht:SELECTION-END
51
        VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
52
*/
53
ht:INSERT-STRING("A1234567890 B1234567890").
54
ht:INSERT-STRING(" ").
55
ht:INSERT-STRING("C1234567890").
56
ht:INSERT-STRING(" ").
57
ht:INSERT-STRING("D1234567890").
58
ht:INSERT-STRING(" ").
59
ht:INSERT-STRING("E1234567890").
60
ht:CURSOR-OFFSET = 1.
61
/*
62
MESSAGE "box:" ht:BOX 
63
        "line:" ht:CURSOR-LINE "char:"  ht:CURSOR-CHAR "offset:" ht:CURSOR-OFFSET
64
        "len:" ht:LENGTH "lines:" ht:NUM-LINES
65
        "sel:" ht:TEXT-SELECTED "sel1:" ht:SELECTION-START "sel2:" ht:SELECTION-END
66
        VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
67
*/
68
ENABLE ALL WITH FRAME f NO-LABEL TITLE 'Editor'.
69

    
70
ON RETURN OF rsf IN FRAME m DO:
71
  ASSIGN FRAME m rso rsn rsf. 
72
  IF rso = "space" THEN rso = " ".
73
  MESSAGE "[" + rso + "]" "unknown:" rso = ? "[" + rsn + "]" "unknown:" rsn = ? rsf "unknown:" rsf = ?
74
  VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
75
  rc = ht:REPLACE(rso, rsn, rsf).
76
  RUN P_showPos(INPUT rc).
77
END.
78

    
79
ON RETURN OF ist IN FRAME m DO:
80
  ASSIGN FRAME m ist. 
81
  MESSAGE ist "unknown:" ist = ? VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
82
  rc = ht:INSERT-STRING(ist).
83
  RUN P_showPos(INPUT rc).
84
END.
85

    
86
ON RETURN OF rst IN FRAME m DO:
87
  ASSIGN FRAME m rst. 
88
  MESSAGE rst "unknown:" rst = ? VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
89
  rc = ht:REPLACE-SELECTION-TEXT(rst).
90
  RUN P_showPos(INPUT rc).
91
  
92
END.
93

    
94
ON RETURN OF cl IN FRAME c DO:
95
  ASSIGN FRAME c cl.
96
  MESSAGE cl "unknown:" cl = ? VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
97
  ht:CURSOR-LINE = cl.
98
  RUN P_showPos(INPUT ?).
99
END. 
100

    
101
ON RETURN OF cc IN FRAME c DO:
102
  ASSIGN FRAME c cc.
103
  MESSAGE cc "unknown:" cc = ? VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
104
  ht:CURSOR-CHAR = cc.
105
  RUN P_showPos(INPUT ?).
106
END. 
107

    
108
ON RETURN OF co IN FRAME c DO:
109
  ASSIGN FRAME c co.
110
  MESSAGE co "unknown:" co = ? VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
111
  ht:CURSOR-OFFSET = co.
112
  RUN P_showPos(INPUT ?).
113
END. 
114

    
115
ON RETURN OF se IN FRAME s DO:
116
  ASSIGN FRAME s ss se.
117
  MESSAGE "start:" ss "unknown:" ss = ? "end:" se "unknown:" se = ? VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
118
  ht:SELECTED = FALSE.
119
  rc = ht:SET-SELECTION(ss, se).
120
  RUN P_showPos(INPUT rc).
121
END. 
122

    
123
ON CTRL-X ANYWHERE DO:
124
  RUN P_showPos(INPUT ?).
125
END.
126

    
127
ON CTRL-Y ANYWHERE DO:
128
    MESSAGE "[" + ht:SELECTION-TEXT + "]" "unknown:" ht:SELECTION-TEXT = ?
129
    VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
130
END.
131

    
132
WAIT-FOR WINDOW-CLOSE OF CURRENT-WINDOW.
133

    
134
PROCEDURE P_showPos PRIVATE:
135
    DEFINE INPUT PARAMETER rc AS LOGICAL NO-UNDO.
136
    MESSAGE "rc:" rc 
137
            "line:" ht:CURSOR-LINE "char:"  ht:CURSOR-CHAR "offset:" ht:CURSOR-OFFSET
138
            "len:" ht:LENGTH "lines:" ht:NUM-LINES
139
            "sel:" ht:TEXT-SELECTED "sel1:" ht:SELECTION-START "sel2:" ht:SELECTION-END
140
    VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
141
END.
142