STRINPUT.LST 53 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138
  1. Listing:
  2. 1 IMPLEMENTATION MODULE StrInput;
  3. 2 (*
  4. 3 * REPERTOIRE
  5. 4 * Release 1.6
  6. 5 * By Charles Bradford and Cole Brecheen
  7. 6 * (c) Copyright 1985-1992 PMI
  8. 7 * Green Bay, Wisconsin
  9. 8 * All rights reserved
  10. 9 * (414) 468-6040
  11. 10 *
  12. 11 * $Header: D:/logfiles/mods/strinput.mov 1.7 10 Mar 1991 15:33:36 coleb $
  13. 12 *
  14. 13 *)
  15. 14
  16. 15
  17. 16 (*EntryDiag:
  18. 17 IMPORT Diagnostics;
  19. 18 :EntryDiag*)
  20. 19
  21. 20 IMPORT BigSets;
  22. 21 IMPORT ErrorManager;
  23. 22 IMPORT KbdInput;
  24. 23 IMPORT Key;
  25. 24 IMPORT LowLevel;
  26. 25 IMPORT M2Strings;
  27. 26 IMPORT Numbers;
  28. 27 IMPORT PosUtils;
  29. 28 IMPORT Spkr;
  30. 29 IMPORT StrConv;
  31. 30 IMPORT StrEdit;
  32. 31 IMPORT SYSTEM;
  33. 32 IMPORT VWindows;
  34. 33
  35. 34 VAR
  36. 35 Initialized : BOOLEAN;
  37. 36
  38. 37 PROCEDURE Init();
  39. 38 BEGIN
  40. 39 IF Initialized THEN
  41. 40 RETURN;
  42. 41 ELSE
  43. 42 Initialized := TRUE;
  44. 43 END;
  45. 44 (*EntryDiag:
  46. 45 Diagnostics.Init();
  47. 46 :EntryDiag*)
  48. 47
  49. 48 BigSets.Init();
  50. ***** ^ not supported yet
  51. ***** ^ not supported yet
  52. ***** ^ not supported yet
  53. 49 ErrorManager.Init();
  54. ***** ^ not supported yet
  55. ***** ^ not supported yet
  56. ***** ^ not supported yet
  57. 50 KbdInput.Init();
  58. ***** ^ not supported yet
  59. ***** ^ not supported yet
  60. ***** ^ not supported yet
  61. 51 Key.Init();
  62. ***** ^ not supported yet
  63. ***** ^ not supported yet
  64. ***** ^ not supported yet
  65. 52 LowLevel.Init();
  66. ***** ^ not supported yet
  67. ***** ^ not supported yet
  68. ***** ^ not supported yet
  69. 53 M2Strings.Init();
  70. ***** ^ not supported yet
  71. ***** ^ not supported yet
  72. ***** ^ not supported yet
  73. 54 Numbers.Init();
  74. ***** ^ not supported yet
  75. ***** ^ not supported yet
  76. ***** ^ not supported yet
  77. 55 PosUtils.Init();
  78. ***** ^ not supported yet
  79. ***** ^ not supported yet
  80. ***** ^ not supported yet
  81. 56 Spkr.Init();
  82. ***** ^ not supported yet
  83. ***** ^ not supported yet
  84. ***** ^ not supported yet
  85. 57 StrConv.Init();
  86. ***** ^ not supported yet
  87. ***** ^ not supported yet
  88. ***** ^ not supported yet
  89. 58 StrEdit.Init();
  90. ***** ^ not supported yet
  91. ***** ^ not supported yet
  92. ***** ^ not supported yet
  93. 59 VWindows.Init();
  94. ***** ^ not supported yet
  95. ***** ^ not supported yet
  96. ***** ^ not supported yet
  97. 60 (*EntryDiag:
  98. 61 Diagnostics.diagS( 'Entering StrInput', '' );
  99. 62 :EntryDiag*)
  100. 63
  101. 64 BeepAtNumbers := TRUE;
  102. ***** ^ undeclared identifier
  103. 65
  104. 66 (*EntryDiag:
  105. 67 Diagnostics.diagS( 'Exiting StrInput', '' );
  106. 68 :EntryDiag*)
  107. 69 END Init;
  108. ***** ^ not supported yet
  109. 70
  110. 71
  111. 72 CONST
  112. 73 Minus = 45; (* ORD('-') *)
  113. 74 DecimalKey = 46; (* ORD('.') *)
  114. 75 CurrencySymbol = '$';
  115. 76 blank = ' ';
  116. 77
  117. 78
  118. 79 PROCEDURE ReadWithEdits( WindowHandle: VWindows.AWindowHandle;
  119. ***** ^ not supported yet
  120. 80 VAR TheStr : ARRAY OF CHAR; col1, row1, FieldWidth:
  121. ***** ^ not supported yet
  122. 81 CARDINAL; VAR CursorPos: CARDINAL; VAR InsertMode: BOOLEAN;
  123. 82 scrolling: BOOLEAN; VAR LastKey : CARDINAL; VAR LegalKeys,
  124. 83 ExitKeys : KbdInput.KeyNumSet );
  125. ***** ^ not supported yet
  126. 84
  127. 85 VAR
  128. 86 bufch : CHAR;
  129. 87 done, RedrawNeeded : BOOLEAN;
  130. 88 SavedHeight, StrNdx, CharsScrolled, TheStrLen : CARDINAL;
  131. 89 AllOkKeys: KbdInput.KeyNumSet;
  132. ***** ^ not supported yet
  133. 90 (* CursorPos = current offset of cursor from start of field *)
  134. 91
  135. 92 PROCEDURE redraw( BeginningAt: CARDINAL );
  136. 93 VAR
  137. 94 TmpStr: ARRAY [0..79] OF CHAR;
  138. ***** ^ not supported yet
  139. ***** ^ not supported yet
  140. 95 BEGIN
  141. 96 IF (BeginningAt < CharsScrolled) THEN
  142. 97 HALT();
  143. ***** ^ undeclared identifier
  144. ***** ^ not supported yet
  145. 98 END;
  146. 99 M2Strings.Copy( TheStr, BeginningAt,
  147. ***** ^ not supported yet
  148. ***** ^ not supported yet
  149. ***** ^ not supported yet
  150. 100 M2Strings.Length(TheStr) - BeginningAt, TmpStr );
  151. ***** ^ not supported yet
  152. ***** ^ not supported yet
  153. ***** ^ not supported yet
  154. ***** ^ not supported yet
  155. 101 BeginningAt := BeginningAt - CharsScrolled;
  156. 102 StrEdit.SetLength( TmpStr, FieldWidth - BeginningAt );
  157. ***** ^ not supported yet
  158. ***** ^ not supported yet
  159. ***** ^ not supported yet
  160. ***** ^ not supported yet
  161. 103 IF (BeginningAt < FieldWidth) THEN
  162. 104 VWindows.DrawStr( WindowHandle, col1 + BeginningAt,
  163. ***** ^ not supported yet
  164. ***** ^ not supported yet
  165. ***** ^ not supported yet
  166. 105 row1, SYSTEM.ADR(TmpStr), FieldWidth - BeginningAt );
  167. ***** ^ not supported yet
  168. ***** ^ not supported yet
  169. ***** ^ not supported yet
  170. ***** ^ not supported yet
  171. 106 RedrawNeeded := FALSE;
  172. 107 END;
  173. 108 END redraw;
  174. ***** ^ not supported yet
  175. 109
  176. 110 PROCEDURE MoveToPos( StrOffset: CARDINAL );
  177. 111 BEGIN
  178. 112 WHILE (CursorPos + CharsScrolled) > StrOffset DO
  179. 113 (* we are moving backwards *)
  180. 114 IF CursorPos > 0 THEN
  181. 115 DEC( CursorPos );
  182. ***** ^ undeclared identifier
  183. ***** ^ not supported yet
  184. 116 ELSE
  185. 117 RedrawNeeded := TRUE;
  186. 118 DEC( CharsScrolled );
  187. ***** ^ undeclared identifier
  188. ***** ^ not supported yet
  189. 119 END;
  190. 120 DEC( StrNdx );
  191. ***** ^ undeclared identifier
  192. ***** ^ not supported yet
  193. 121 END;
  194. 122 WHILE (CursorPos + CharsScrolled) < StrOffset DO
  195. 123 (* we are moving forewards *)
  196. 124 IF CursorPos < FieldWidth THEN
  197. 125 INC( CursorPos );
  198. ***** ^ undeclared identifier
  199. ***** ^ not supported yet
  200. 126 ELSE
  201. 127 RedrawNeeded := TRUE;
  202. 128 INC( CharsScrolled );
  203. ***** ^ undeclared identifier
  204. ***** ^ not supported yet
  205. 129 END;
  206. 130 INC( StrNdx );
  207. ***** ^ undeclared identifier
  208. ***** ^ not supported yet
  209. 131 END;
  210. 132 END MoveToPos;
  211. ***** ^ not supported yet
  212. 133
  213. 134 PROCEDURE LeftToChar( TheChar: CHAR );
  214. 135 BEGIN
  215. 136 WHILE (StrNdx > 0) AND (TheStr[ StrNdx ] # TheChar) DO
  216. ***** ^ not supported yet
  217. ***** ^ not supported yet
  218. 137 MoveToPos( StrNdx - 1 );
  219. ***** ^ not supported yet
  220. ***** ^ not supported yet
  221. 138 END;
  222. 139 END LeftToChar;
  223. ***** ^ not supported yet
  224. 140
  225. 141 PROCEDURE RightToChar( TheChar: CHAR );
  226. 142 BEGIN
  227. 143 WHILE (StrNdx < TheStrLen) AND (TheStr[ StrNdx ] # TheChar) DO
  228. ***** ^ not supported yet
  229. ***** ^ not supported yet
  230. 144 MoveToPos( StrNdx + 1 );
  231. ***** ^ not supported yet
  232. ***** ^ not supported yet
  233. 145 END;
  234. 146 END RightToChar;
  235. ***** ^ not supported yet
  236. 147
  237. 148 PROCEDURE SkipLeftOver( TheChar: CHAR );
  238. 149 BEGIN
  239. 150 WHILE (StrNdx > 0) AND (TheStr[ StrNdx ] = TheChar) DO
  240. ***** ^ not supported yet
  241. ***** ^ not supported yet
  242. 151 MoveToPos( StrNdx - 1 );
  243. ***** ^ not supported yet
  244. ***** ^ not supported yet
  245. 152 END;
  246. 153 END SkipLeftOver;
  247. ***** ^ not supported yet
  248. 154
  249. 155 PROCEDURE SkipRightOver( TheChar: CHAR );
  250. 156 BEGIN
  251. 157 WHILE (StrNdx < TheStrLen) AND (TheStr[ StrNdx ] = TheChar) DO
  252. ***** ^ not supported yet
  253. ***** ^ not supported yet
  254. 158 MoveToPos( StrNdx + 1 );
  255. ***** ^ not supported yet
  256. ***** ^ not supported yet
  257. 159 END;
  258. 160 END SkipRightOver;
  259. ***** ^ not supported yet
  260. 161
  261. 162 BEGIN
  262. 163 (* ReadWithEdits *)
  263. 164 SavedHeight := VWindows.GetCursorHeight(WindowHandle);
  264. ***** ^ not supported yet
  265. ***** ^ not supported yet
  266. ***** ^ not supported yet
  267. 165 TheStrLen := M2Strings.Length( TheStr );
  268. ***** ^ not supported yet
  269. ***** ^ not supported yet
  270. ***** ^ not supported yet
  271. 166 BigSets.SetUnion( LegalKeys, ExitKeys, AllOkKeys);
  272. ***** ^ not supported yet
  273. ***** ^ not supported yet
  274. ***** ^ not supported yet
  275. ***** ^ not supported yet
  276. ***** ^ not supported yet
  277. 167 FieldWidth := Numbers.Min( HIGH(TheStr) + 1, FieldWidth );
  278. ***** ^ not supported yet
  279. ***** ^ not supported yet
  280. ***** ^ undeclared identifier
  281. ***** ^ not supported yet
  282. ***** ^ not supported yet
  283. 168 IF FieldWidth = 0 THEN
  284. 169 (* This means you can pass 0 to FieldWidth if your only
  285. 170 width concern is preventing overflow of TheStr. *)
  286. 171 FieldWidth := HIGH( TheStr ) + 1;
  287. ***** ^ undeclared identifier
  288. ***** ^ not supported yet
  289. 172 IF FieldWidth > (VWindows.EndCol(WindowHandle) - col1) THEN
  290. ***** ^ not supported yet
  291. ***** ^ not supported yet
  292. ***** ^ not supported yet
  293. 173 FieldWidth := VWindows.EndCol(WindowHandle) - col1;
  294. ***** ^ not supported yet
  295. ***** ^ not supported yet
  296. ***** ^ not supported yet
  297. 174 END;
  298. 175 END;
  299. 176 WHILE TheStrLen < FieldWidth DO
  300. 177 StrEdit.Append( TheStr, blank );
  301. ***** ^ not supported yet
  302. ***** ^ not supported yet
  303. ***** ^ not supported yet
  304. ***** ^ not supported yet
  305. 178 INC( TheStrLen );
  306. ***** ^ undeclared identifier
  307. ***** ^ not supported yet
  308. 179 END;
  309. 180 IF (NOT scrolling) AND (TheStrLen > FieldWidth) THEN
  310. 181 StrEdit.SetLength( TheStr, FieldWidth );
  311. ***** ^ not supported yet
  312. ***** ^ not supported yet
  313. ***** ^ not supported yet
  314. ***** ^ not supported yet
  315. 182 TheStrLen := FieldWidth;
  316. 183 END;
  317. 184 CharsScrolled := 0;
  318. 185 StrNdx := CursorPos;
  319. 186 VWindows.GotoXY( WindowHandle, col1 + CursorPos, row1);
  320. ***** ^ not supported yet
  321. ***** ^ not supported yet
  322. ***** ^ not supported yet
  323. ***** ^ not supported yet
  324. 187 IF InsertMode THEN
  325. 188 VWindows.SetCursorHeight( WindowHandle, 6 )
  326. ***** ^ not supported yet
  327. ***** ^ not supported yet
  328. ***** ^ not supported yet
  329. ***** ^ not supported yet
  330. 189 ELSE
  331. 190 VWindows.SetCursorHeight( WindowHandle, 2);
  332. ***** ^ not supported yet
  333. ***** ^ not supported yet
  334. ***** ^ not supported yet
  335. ***** ^ not supported yet
  336. 191 END;
  337. 192 (*turns on cursor*)
  338. 193 done := FALSE;
  339. 194 RedrawNeeded := TRUE;
  340. 195 REPEAT
  341. 196 IF RedrawNeeded THEN
  342. 197 redraw( CharsScrolled );
  343. ***** ^ not supported yet
  344. ***** ^ not supported yet
  345. 198 END;
  346. 199 VWindows.GotoXY( WindowHandle, col1 + CursorPos, row1);
  347. ***** ^ not supported yet
  348. ***** ^ not supported yet
  349. ***** ^ not supported yet
  350. ***** ^ not supported yet
  351. 200 LastKey := KbdInput.KeyHit( AllOkKeys);
  352. ***** ^ not supported yet
  353. ***** ^ not supported yet
  354. ***** ^ not supported yet
  355. 201 CASE LastKey OF
  356. 202
  357. 203 Key.Left : (* move to prior character position *)
  358. ***** ^ not supported yet
  359. ***** ^ not supported yet
  360. 204 IF StrNdx > 0 THEN
  361. 205 MoveToPos( StrNdx - 1 );
  362. ***** ^ not supported yet
  363. ***** ^ not supported yet
  364. 206 ELSE
  365. 207 IF BigSets.InSet( ExitKeys, LastKey ) THEN
  366. ***** ^ not supported yet
  367. ***** ^ not supported yet
  368. ***** ^ not supported yet
  369. ***** ^ not supported yet
  370. 208 (* left arrow at start moves to prior field if
  371. 209 Key.Left in ExitKeys *)
  372. 210 done := TRUE;
  373. 211 END;
  374. 212 END;
  375. 213
  376. 214 | Key.Right : (* move to next character position *)
  377. ***** ^ not supported yet
  378. ***** ^ not supported yet
  379. 215 IF StrNdx + 1 < TheStrLen THEN
  380. 216 MoveToPos( StrNdx + 1 );
  381. ***** ^ not supported yet
  382. ***** ^ not supported yet
  383. 217 ELSE
  384. 218 IF BigSets.InSet( ExitKeys, LastKey ) THEN
  385. ***** ^ not supported yet
  386. ***** ^ not supported yet
  387. ***** ^ not supported yet
  388. ***** ^ not supported yet
  389. 219 (* left arrow at end moves to next field if
  390. 220 Key.Right in ExitKeys *)
  391. 221 done := TRUE;
  392. 222 END;
  393. 223 END;
  394. 224
  395. 225 | Key.Del : (* Delete char under cursor *)
  396. ***** ^ not supported yet
  397. ***** ^ not supported yet
  398. 226 M2Strings.Delete( TheStr, StrNdx, 1 );
  399. ***** ^ not supported yet
  400. ***** ^ not supported yet
  401. ***** ^ not supported yet
  402. ***** ^ not supported yet
  403. 227 StrEdit.Append( TheStr, blank );
  404. ***** ^ not supported yet
  405. ***** ^ not supported yet
  406. ***** ^ not supported yet
  407. ***** ^ not supported yet
  408. 228 redraw( StrNdx );
  409. ***** ^ not supported yet
  410. ***** ^ not supported yet
  411. 229
  412. 230 | Key.Home : (* Go to beginning of field *)
  413. ***** ^ not supported yet
  414. ***** ^ not supported yet
  415. 231 IF BigSets.InSet( ExitKeys, LastKey ) THEN
  416. ***** ^ not supported yet
  417. ***** ^ not supported yet
  418. ***** ^ not supported yet
  419. ***** ^ not supported yet
  420. 232 done := TRUE;
  421. 233 ELSE
  422. 234 MoveToPos( 0 );
  423. ***** ^ not supported yet
  424. ***** ^ not supported yet
  425. 235 END;
  426. 236
  427. 237 | Key.End : (* Go past last character written *)
  428. ***** ^ not supported yet
  429. ***** ^ not supported yet
  430. 238 IF BigSets.InSet( ExitKeys, LastKey ) THEN
  431. ***** ^ not supported yet
  432. ***** ^ not supported yet
  433. ***** ^ not supported yet
  434. ***** ^ not supported yet
  435. 239 done := TRUE;
  436. 240 ELSE
  437. 241 MoveToPos( TheStrLen - 1 );
  438. ***** ^ not supported yet
  439. ***** ^ not supported yet
  440. 242 SkipLeftOver( blank );
  441. ***** ^ not supported yet
  442. ***** ^ not supported yet
  443. 243 RightToChar( blank );
  444. ***** ^ not supported yet
  445. ***** ^ not supported yet
  446. 244 END;
  447. 245
  448. 246 | Key.CtrlRight, Key.Tab : (* Go to next word *)
  449. ***** ^ not supported yet
  450. ***** ^ not supported yet
  451. ***** ^ not supported yet
  452. ***** ^ not supported yet
  453. 247 IF ((StrNdx = TheStrLen) OR (LastKey = Key.Tab)) AND
  454. ***** ^ not supported yet
  455. ***** ^ not supported yet
  456. 248 BigSets.InSet( ExitKeys, LastKey ) THEN
  457. ***** ^ not supported yet
  458. ***** ^ not supported yet
  459. ***** ^ not supported yet
  460. ***** ^ not supported yet
  461. 249 (* Tab or no next word found, so exit *)
  462. 250 done := TRUE;
  463. 251 ELSE
  464. 252 IF TheStr[ StrNdx ] = blank THEN
  465. ***** ^ not supported yet
  466. ***** ^ not supported yet
  467. 253 SkipRightOver( blank );
  468. ***** ^ not supported yet
  469. ***** ^ not supported yet
  470. 254 ELSE
  471. 255 RightToChar( blank );
  472. ***** ^ not supported yet
  473. ***** ^ not supported yet
  474. 256 SkipRightOver( blank );
  475. ***** ^ not supported yet
  476. ***** ^ not supported yet
  477. 257 END;
  478. 258 END;
  479. 259
  480. 260 | Key.CtrlLeft, Key.BackTab : (* Go to previous word *)
  481. ***** ^ not supported yet
  482. ***** ^ not supported yet
  483. ***** ^ not supported yet
  484. ***** ^ not supported yet
  485. 261 IF ((StrNdx = 0) OR (LastKey = Key.BackTab)) AND BigSets.InSet(
  486. ***** ^ not supported yet
  487. ***** ^ not supported yet
  488. ***** ^ not supported yet
  489. ***** ^ not supported yet
  490. 262 ExitKeys, LastKey ) THEN
  491. ***** ^ not supported yet
  492. ***** ^ not supported yet
  493. 263 (* BackTab or no previous word, so exit *)
  494. 264 done := TRUE;
  495. 265 ELSE
  496. 266 IF TheStr[ StrNdx ] # blank THEN
  497. ***** ^ not supported yet
  498. ***** ^ not supported yet
  499. 267 LeftToChar( blank );
  500. ***** ^ not supported yet
  501. ***** ^ not supported yet
  502. 268 END;
  503. 269 SkipLeftOver( blank );
  504. ***** ^ not supported yet
  505. ***** ^ not supported yet
  506. 270 LeftToChar( blank );
  507. ***** ^ not supported yet
  508. ***** ^ not supported yet
  509. 271 SkipRightOver( blank );
  510. ***** ^ not supported yet
  511. ***** ^ not supported yet
  512. 272 END;
  513. 273
  514. 274 | Key.AltD : (* Erase the entire entry *)
  515. ***** ^ not supported yet
  516. ***** ^ not supported yet
  517. 275 LowLevel.Fill( SYSTEM.ADR( TheStr ), TheStrLen, blank );
  518. ***** ^ not supported yet
  519. ***** ^ not supported yet
  520. ***** ^ not supported yet
  521. ***** ^ not supported yet
  522. ***** ^ not supported yet
  523. ***** ^ not supported yet
  524. 276 MoveToPos( 0 );
  525. ***** ^ not supported yet
  526. ***** ^ not supported yet
  527. 277 RedrawNeeded := TRUE;
  528. 278
  529. 279 | Key.AltE : (* Erase to the end of the field *)
  530. ***** ^ not supported yet
  531. ***** ^ not supported yet
  532. 280 LowLevel.Fill( LowLevel.AddAddr( SYSTEM.ADR(TheStr),
  533. ***** ^ not supported yet
  534. ***** ^ not supported yet
  535. ***** ^ not supported yet
  536. ***** ^ not supported yet
  537. ***** ^ not supported yet
  538. ***** ^ not supported yet
  539. ***** ^ not supported yet
  540. 281 StrNdx), TheStrLen - StrNdx, blank );
  541. ***** ^ not supported yet
  542. ***** ^ not supported yet
  543. 282 redraw( StrNdx );
  544. ***** ^ not supported yet
  545. ***** ^ not supported yet
  546. 283
  547. 284 | Key.Ins : (* Toggle insert mode on and off *)
  548. ***** ^ not supported yet
  549. ***** ^ not supported yet
  550. 285 InsertMode := NOT InsertMode;
  551. 286 IF InsertMode THEN
  552. 287 VWindows.SetCursorHeight( WindowHandle, 6 )
  553. ***** ^ not supported yet
  554. ***** ^ not supported yet
  555. ***** ^ not supported yet
  556. ***** ^ not supported yet
  557. 288 ELSE
  558. 289 VWindows.SetCursorHeight(WindowHandle, 2);
  559. ***** ^ not supported yet
  560. ***** ^ not supported yet
  561. ***** ^ not supported yet
  562. ***** ^ not supported yet
  563. 290 END;
  564. 291
  565. 292 | Key.Escape :
  566. ***** ^ not supported yet
  567. ***** ^ not supported yet
  568. 293 done := TRUE;
  569. 294 (* Unconditionally exit if the user presses ESC. *)
  570. 295
  571. 296 | Key.BackSpace :
  572. ***** ^ not supported yet
  573. ***** ^ not supported yet
  574. 297 IF (StrNdx > 0) THEN
  575. 298 MoveToPos( StrNdx - 1 );
  576. ***** ^ not supported yet
  577. ***** ^ not supported yet
  578. 299 IF InsertMode THEN
  579. 300 M2Strings.Delete( TheStr, StrNdx, 1 );
  580. ***** ^ not supported yet
  581. ***** ^ not supported yet
  582. ***** ^ not supported yet
  583. ***** ^ not supported yet
  584. 301 StrEdit.Append( TheStr, blank );
  585. ***** ^ not supported yet
  586. ***** ^ not supported yet
  587. ***** ^ not supported yet
  588. ***** ^ not supported yet
  589. 302 ELSE
  590. 303 TheStr[ StrNdx ] := blank;
  591. ***** ^ not supported yet
  592. ***** ^ not supported yet
  593. 304 END;
  594. 305 redraw( StrNdx );
  595. ***** ^ not supported yet
  596. ***** ^ not supported yet
  597. 306 ELSIF BigSets.InSet( ExitKeys, LastKey ) THEN
  598. ***** ^ not supported yet
  599. ***** ^ not supported yet
  600. ***** ^ not supported yet
  601. ***** ^ not supported yet
  602. 307 done := TRUE;
  603. 308 END;
  604. 309
  605. 310 ELSE
  606. 311 IF BigSets.InSet( ExitKeys, LastKey ) THEN
  607. ***** ^ not supported yet
  608. ***** ^ not supported yet
  609. ***** ^ not supported yet
  610. ***** ^ not supported yet
  611. 312 done := TRUE;
  612. 313 ELSIF (StrNdx < TheStrLen) AND (LastKey <
  613. 314 KbdInput.Extended) THEN
  614. ***** ^ not supported yet
  615. ***** ^ not supported yet
  616. 315 (* normal key pressed and cursor is not past end *)
  617. 316 IF InsertMode THEN
  618. 317 IF NOT scrolling THEN
  619. 318 M2Strings.Delete( TheStr, TheStrLen - 1, 1 );
  620. ***** ^ not supported yet
  621. ***** ^ not supported yet
  622. ***** ^ not supported yet
  623. ***** ^ not supported yet
  624. 319 END;
  625. 320 bufch := CHR( LastKey );
  626. ***** ^ undeclared identifier
  627. ***** ^ not supported yet
  628. 321 M2Strings.Insert( bufch, TheStr, StrNdx );
  629. ***** ^ not supported yet
  630. ***** ^ not supported yet
  631. ***** ^ not supported yet
  632. ***** ^ not supported yet
  633. 322 ELSE
  634. 323 TheStr[ StrNdx ] := CHR( LastKey );
  635. ***** ^ not supported yet
  636. ***** ^ not supported yet
  637. ***** ^ undeclared identifier
  638. ***** ^ not supported yet
  639. 324 END;
  640. 325 redraw( StrNdx );
  641. ***** ^ not supported yet
  642. ***** ^ not supported yet
  643. 326 MoveToPos( StrNdx + 1 );
  644. ***** ^ not supported yet
  645. ***** ^ not supported yet
  646. 327 ELSE
  647. 328 Spkr.Noise( Spkr.Warble, Spkr.Normal,
  648. ***** ^ not supported yet
  649. ***** ^ not supported yet
  650. ***** ^ not supported yet
  651. ***** ^ not supported yet
  652. ***** ^ not supported yet
  653. ***** ^ not supported yet
  654. 329 Spkr.Short);
  655. ***** ^ not supported yet
  656. ***** ^ not supported yet
  657. 330 END;
  658. 331 END;
  659. 332 UNTIL done;
  660. 333 StrEdit.SetLength( TheStr, FieldWidth );
  661. ***** ^ not supported yet
  662. ***** ^ not supported yet
  663. ***** ^ not supported yet
  664. ***** ^ not supported yet
  665. 334 (*We do this because TheStr may have gotten longer if
  666. 335 we've been scrolling.*)
  667. 336 VWindows.SetCursorHeight( WindowHandle, SavedHeight );
  668. ***** ^ not supported yet
  669. ***** ^ not supported yet
  670. ***** ^ not supported yet
  671. ***** ^ not supported yet
  672. 337 END ReadWithEdits;
  673. ***** ^ not supported yet
  674. 338
  675. 339
  676. 340 PROCEDURE ReadNumeric( WindowHandle:
  677. 341 VWindows.AWindowHandle; VAR TheStr : ARRAY OF
  678. ***** ^ not supported yet
  679. 342 CHAR; col1, row1, FieldWidth: CARDINAL;
  680. ***** ^ not supported yet
  681. 343 DecimalPlaces: CARDINAL; FloatingPoint: BOOLEAN;
  682. 344 VAR InDecimals: BOOLEAN; VAR LastKey : CARDINAL;
  683. 345 VAR ExitKeys : KbdInput.KeyNumSet );
  684. ***** ^ not supported yet
  685. 346
  686. 347 VAR
  687. 348 SavedHeight, cnt, DecimalSpot, InsertionPoint,
  688. 349 NonBlankLength: CARDINAL;
  689. 350 AtLeadingZero: BOOLEAN;
  690. 351 LegalKeys, AllOkKeys: KbdInput.KeyNumSet;
  691. ***** ^ not supported yet
  692. 352 DumStr: ARRAY [0..0] OF CHAR;
  693. ***** ^ not supported yet
  694. ***** ^ not supported yet
  695. 353
  696. 354 BEGIN
  697. 355 (* First we make sure the FieldWidth is okay. *)
  698. 356 IF FieldWidth = 0 THEN
  699. 357 FieldWidth := HIGH( TheStr ) + 1;
  700. ***** ^ undeclared identifier
  701. ***** ^ not supported yet
  702. 358 ELSE
  703. 359 FieldWidth := Numbers.Min( HIGH(TheStr) + 1, FieldWidth );
  704. ***** ^ not supported yet
  705. ***** ^ not supported yet
  706. ***** ^ undeclared identifier
  707. ***** ^ not supported yet
  708. ***** ^ not supported yet
  709. 360 END;
  710. 361 FieldWidth := Numbers.Min( VWindows.EndCol(WindowHandle) - col1,
  711. ***** ^ not supported yet
  712. ***** ^ not supported yet
  713. ***** ^ not supported yet
  714. ***** ^ not supported yet
  715. ***** ^ not supported yet
  716. 362 FieldWidth );
  717. ***** ^ not supported yet
  718. 363 StrEdit.RightJustify( TheStr, FieldWidth );
  719. ***** ^ not supported yet
  720. ***** ^ not supported yet
  721. ***** ^ not supported yet
  722. ***** ^ not supported yet
  723. 364 SavedHeight := VWindows.GetCursorHeight(WindowHandle);
  724. ***** ^ not supported yet
  725. ***** ^ not supported yet
  726. ***** ^ not supported yet
  727. 365 VWindows.SetCursorHeight( WindowHandle, 2 );
  728. ***** ^ not supported yet
  729. ***** ^ not supported yet
  730. ***** ^ not supported yet
  731. ***** ^ not supported yet
  732. 366
  733. 367 (* Now we make sure DecimalPlaces is consistent with
  734. 368 TheStr; if it's not, the number of DecimalPlaces in
  735. 369 TheStr overrides. If there's no decimal point in TheStr
  736. 370 at all, however, we'll make it consistent with
  737. 371 DecimalPlaces. *)
  738. 372 IF PosUtils.PresentPos( CHR(DecimalKey), TheStr, DecimalSpot ) THEN
  739. ***** ^ not supported yet
  740. ***** ^ not supported yet
  741. ***** ^ undeclared identifier
  742. ***** ^ not supported yet
  743. ***** ^ not supported yet
  744. ***** ^ not supported yet
  745. 373 IF (DecimalSpot + 1) # (FieldWidth - DecimalPlaces) THEN
  746. 374 DecimalPlaces := (FieldWidth - DecimalSpot) - 1;
  747. 375 END;
  748. 376 ELSIF (DecimalPlaces > 0) OR FloatingPoint THEN
  749. 377 IF DecimalPlaces = 0 THEN
  750. 378 (*We're here because FloatingPoint was true.*)
  751. 379 DecimalPlaces := 1;
  752. 380 (*Makes sure that we've at least got 0.0 in TheStr if
  753. 381 FloatingPoint is true; prevents InsertionPoint from
  754. 382 incrementing beyond FieldWidth, below.*)
  755. 383 END;
  756. 384 IF PosUtils.IsBlank( TheStr ) THEN
  757. ***** ^ not supported yet
  758. ***** ^ not supported yet
  759. ***** ^ not supported yet
  760. 385 StrEdit.InsertRightJustified( '0', TheStr, FieldWidth );
  761. ***** ^ not supported yet
  762. ***** ^ not supported yet
  763. ***** ^ not supported yet
  764. ***** ^ not supported yet
  765. 386 END;
  766. 387 StrEdit.InsertRightJustified( '.', TheStr, FieldWidth );
  767. ***** ^ not supported yet
  768. ***** ^ not supported yet
  769. ***** ^ not supported yet
  770. ***** ^ not supported yet
  771. 388 FOR cnt := 1 TO DecimalPlaces DO
  772. 389 StrEdit.InsertRightJustified( '0', TheStr, FieldWidth );
  773. ***** ^ not supported yet
  774. ***** ^ not supported yet
  775. ***** ^ not supported yet
  776. ***** ^ not supported yet
  777. 390 END;
  778. 391 DecimalSpot := PosUtils.Pos( CHR(DecimalKey), TheStr );
  779. ***** ^ not supported yet
  780. ***** ^ not supported yet
  781. ***** ^ undeclared identifier
  782. ***** ^ not supported yet
  783. ***** ^ not supported yet
  784. 392 ELSE
  785. 393 DecimalSpot := M2Strings.Length( TheStr );
  786. ***** ^ not supported yet
  787. ***** ^ not supported yet
  788. ***** ^ not supported yet
  789. 394 IF PosUtils.IsBlank( TheStr ) THEN
  790. ***** ^ not supported yet
  791. ***** ^ not supported yet
  792. ***** ^ not supported yet
  793. 395 (* Mike McCarthy's bug fix. *)
  794. 396 StrEdit.InsertRightJustified( '0', TheStr, FieldWidth );
  795. ***** ^ not supported yet
  796. ***** ^ not supported yet
  797. ***** ^ not supported yet
  798. ***** ^ not supported yet
  799. 397 END;
  800. 398 END;
  801. 399
  802. 400 (* Now force FloatingPoint to false if CurrencySymbol is in
  803. 401 TheStr. *)
  804. 402 IF PosUtils.Present( CurrencySymbol, TheStr ) THEN
  805. ***** ^ not supported yet
  806. ***** ^ not supported yet
  807. ***** ^ not supported yet
  808. 403 FloatingPoint := FALSE;
  809. 404 END;
  810. 405
  811. 406 (* Now we find the insertion point. *)
  812. 407 InsertionPoint := DecimalSpot;
  813. 408 IF InDecimals THEN
  814. 409 REPEAT
  815. 410 INC( InsertionPoint );
  816. ***** ^ undeclared identifier
  817. ***** ^ not supported yet
  818. 411 UNTIL (InsertionPoint >= FieldWidth) OR
  819. 412 (TheStr[InsertionPoint] = '0');
  820. ***** ^ not supported yet
  821. ***** ^ not supported yet
  822. 413 ELSE
  823. 414 IF (TheStr[ InsertionPoint - 1 ] = '0') AND ( (InsertionPoint <=
  824. ***** ^ not supported yet
  825. ***** ^ not supported yet
  826. 415 1) OR (NOT PosUtils.Present(TheStr[InsertionPoint - 2],
  827. ***** ^ not supported yet
  828. ***** ^ not supported yet
  829. ***** ^ not supported yet
  830. ***** ^ not supported yet
  831. 416 '0123456789'))) THEN
  832. ***** ^ not supported yet
  833. 417 AtLeadingZero := TRUE;
  834. 418 ELSE
  835. 419 AtLeadingZero := FALSE;
  836. 420 END;
  837. 421 END;
  838. 422
  839. 423 BigSets.InitSet( LegalKeys );
  840. ***** ^ not supported yet
  841. ***** ^ not supported yet
  842. ***** ^ not supported yet
  843. 424 BigSets.AppendSet( LegalKeys, "{8, 331, '.', '-', '0'..'9'}" );
  844. ***** ^ not supported yet
  845. ***** ^ not supported yet
  846. ***** ^ not supported yet
  847. ***** ^ not supported yet
  848. 425 BigSets.SetUnion( LegalKeys, ExitKeys, AllOkKeys);
  849. ***** ^ not supported yet
  850. ***** ^ not supported yet
  851. ***** ^ not supported yet
  852. ***** ^ not supported yet
  853. ***** ^ not supported yet
  854. 426 REPEAT
  855. 427 VWindows.DrawStr( WindowHandle, col1, row1, SYSTEM.ADR(TheStr), 0 );
  856. ***** ^ not supported yet
  857. ***** ^ not supported yet
  858. ***** ^ not supported yet
  859. ***** ^ not supported yet
  860. ***** ^ not supported yet
  861. ***** ^ not supported yet
  862. ***** ^ not supported yet
  863. 428 VWindows.GotoXY( WindowHandle, col1 + InsertionPoint, row1 );
  864. ***** ^ not supported yet
  865. ***** ^ not supported yet
  866. ***** ^ not supported yet
  867. ***** ^ not supported yet
  868. 429 LastKey := KbdInput.KeyHit( AllOkKeys);
  869. ***** ^ not supported yet
  870. ***** ^ not supported yet
  871. ***** ^ not supported yet
  872. 430 CASE LastKey OF
  873. 431 48..57: (* ASCII values of '0' to '9' *)
  874. 432 IF InDecimals THEN
  875. 433 IF (InsertionPoint = FieldWidth) THEN
  876. 434 IF FloatingPoint AND (TheStr[0] = blank) THEN
  877. ***** ^ not supported yet
  878. ***** ^ not supported yet
  879. 435 DumStr[0] := CHR(LastKey);
  880. ***** ^ not supported yet
  881. ***** ^ not supported yet
  882. ***** ^ undeclared identifier
  883. ***** ^ not supported yet
  884. 436 IF BeepAtNumbers THEN
  885. ***** ^ undeclared identifier
  886. 437 Spkr.TimedNoise( (LastKey * 100) - 4400, 2 );
  887. ***** ^ not supported yet
  888. ***** ^ not supported yet
  889. ***** ^ not supported yet
  890. 438 END;
  891. 439 StrEdit.InsertRightJustified( DumStr, TheStr,
  892. ***** ^ not supported yet
  893. ***** ^ not supported yet
  894. ***** ^ not supported yet
  895. ***** ^ not supported yet
  896. 440 InsertionPoint );
  897. ***** ^ not supported yet
  898. 441 DEC( DecimalSpot );
  899. ***** ^ undeclared identifier
  900. ***** ^ not supported yet
  901. 442 ELSE
  902. 443 Spkr.Noise( Spkr.Warble, Spkr.Normal,
  903. ***** ^ not supported yet
  904. ***** ^ not supported yet
  905. ***** ^ not supported yet
  906. ***** ^ not supported yet
  907. ***** ^ not supported yet
  908. ***** ^ not supported yet
  909. 444 Spkr.Short);
  910. ***** ^ not supported yet
  911. ***** ^ not supported yet
  912. 445 END;
  913. 446 ELSE
  914. 447 IF BeepAtNumbers THEN
  915. ***** ^ undeclared identifier
  916. 448 Spkr.TimedNoise( (LastKey * 100) - 4400, 2 );
  917. ***** ^ not supported yet
  918. ***** ^ not supported yet
  919. ***** ^ not supported yet
  920. 449 END;
  921. 450 TheStr[ InsertionPoint ] := CHR( LastKey );
  922. ***** ^ not supported yet
  923. ***** ^ not supported yet
  924. ***** ^ undeclared identifier
  925. ***** ^ not supported yet
  926. 451 INC( InsertionPoint );
  927. ***** ^ undeclared identifier
  928. ***** ^ not supported yet
  929. 452 END;
  930. 453 ELSE
  931. 454 IF AtLeadingZero THEN
  932. 455 IF CHR(LastKey) # '0' THEN
  933. ***** ^ undeclared identifier
  934. ***** ^ not supported yet
  935. 456 IF BeepAtNumbers THEN
  936. ***** ^ undeclared identifier
  937. 457 Spkr.TimedNoise( (LastKey * 100) - 4400, 2 );
  938. ***** ^ not supported yet
  939. ***** ^ not supported yet
  940. ***** ^ not supported yet
  941. 458 END;
  942. 459 TheStr[ InsertionPoint - 1 ] := CHR( LastKey );
  943. ***** ^ not supported yet
  944. ***** ^ not supported yet
  945. ***** ^ undeclared identifier
  946. ***** ^ not supported yet
  947. 460 AtLeadingZero := FALSE;
  948. 461 END
  949. 462 ELSE
  950. 463 IF TheStr[0] = blank THEN
  951. ***** ^ not supported yet
  952. ***** ^ not supported yet
  953. 464 DumStr[0] := CHR(LastKey);
  954. ***** ^ not supported yet
  955. ***** ^ not supported yet
  956. ***** ^ undeclared identifier
  957. ***** ^ not supported yet
  958. 465 IF BeepAtNumbers THEN
  959. ***** ^ undeclared identifier
  960. 466 Spkr.TimedNoise( (LastKey * 100) - 4400, 2 );
  961. ***** ^ not supported yet
  962. ***** ^ not supported yet
  963. ***** ^ not supported yet
  964. 467 END;
  965. 468 StrEdit.InsertRightJustified( DumStr, TheStr,
  966. ***** ^ not supported yet
  967. ***** ^ not supported yet
  968. ***** ^ not supported yet
  969. ***** ^ not supported yet
  970. 469 InsertionPoint );
  971. ***** ^ not supported yet
  972. 470 ELSE
  973. 471 Spkr.Noise( Spkr.Warble, Spkr.Normal,
  974. ***** ^ not supported yet
  975. ***** ^ not supported yet
  976. ***** ^ not supported yet
  977. ***** ^ not supported yet
  978. ***** ^ not supported yet
  979. ***** ^ not supported yet
  980. 472 Spkr.Short);
  981. ***** ^ not supported yet
  982. ***** ^ not supported yet
  983. 473 END;
  984. 474 END;
  985. 475 END;
  986. 476 | Minus: (* '-' *)
  987. ***** ^ not supported yet
  988. 477 IF AtLeadingZero AND (InsertionPoint > 1) THEN
  989. 478 IF (TheStr[InsertionPoint - 2] # '-') THEN
  990. ***** ^ not supported yet
  991. ***** ^ not supported yet
  992. 479 TheStr[ InsertionPoint - 1 ] := CHR( LastKey );
  993. ***** ^ not supported yet
  994. ***** ^ not supported yet
  995. ***** ^ undeclared identifier
  996. ***** ^ not supported yet
  997. 480 StrEdit.InsertRightJustified( '0', TheStr,
  998. ***** ^ not supported yet
  999. ***** ^ not supported yet
  1000. ***** ^ not supported yet
  1001. 481 InsertionPoint );
  1002. ***** ^ not supported yet
  1003. 482 (* Note that we're still AtLeadingZero here. *)
  1004. 483 END;
  1005. 484 END;
  1006. 485 | DecimalKey:
  1007. ***** ^ not supported yet
  1008. 486 IF (NOT InDecimals) AND (FloatingPoint OR (DecimalPlaces
  1009. 487 > 0)) THEN
  1010. 488 InDecimals := TRUE;
  1011. 489 INC( InsertionPoint );
  1012. ***** ^ undeclared identifier
  1013. ***** ^ not supported yet
  1014. 490 END;
  1015. 491 | Key.BackSpace:
  1016. ***** ^ not supported yet
  1017. ***** ^ not supported yet
  1018. 492 IF InDecimals THEN
  1019. 493 IF InsertionPoint = (DecimalSpot + 1) THEN
  1020. 494 InDecimals := FALSE;
  1021. 495 DEC( InsertionPoint );
  1022. ***** ^ undeclared identifier
  1023. ***** ^ not supported yet
  1024. 496 IF (NOT PosUtils.Present(TheStr[InsertionPoint - 1],
  1025. ***** ^ not supported yet
  1026. ***** ^ not supported yet
  1027. ***** ^ not supported yet
  1028. ***** ^ not supported yet
  1029. 497 '0123456789')) THEN
  1030. ***** ^ not supported yet
  1031. 498 AtLeadingZero := TRUE;
  1032. 499 StrEdit.InsertRightJustified( '0', TheStr,
  1033. ***** ^ not supported yet
  1034. ***** ^ not supported yet
  1035. ***** ^ not supported yet
  1036. 500 InsertionPoint );
  1037. ***** ^ not supported yet
  1038. 501 END;
  1039. 502 ELSE
  1040. 503 IF FloatingPoint THEN
  1041. 504 IF (InsertionPoint = FieldWidth) THEN
  1042. 505 IF (InsertionPoint > (DecimalSpot + 1) ) THEN
  1043. 506 StrEdit.DeleteRightJustified( TheStr,
  1044. ***** ^ not supported yet
  1045. ***** ^ not supported yet
  1046. ***** ^ not supported yet
  1047. 507 InsertionPoint - 1, 1 );
  1048. ***** ^ not supported yet
  1049. 508 INC( DecimalSpot );
  1050. ***** ^ undeclared identifier
  1051. ***** ^ not supported yet
  1052. 509 ELSE
  1053. 510 InDecimals := FALSE;
  1054. 511 DEC( InsertionPoint );
  1055. ***** ^ undeclared identifier
  1056. ***** ^ not supported yet
  1057. 512 END;
  1058. 513 ELSE
  1059. 514 TheStr[ InsertionPoint - 1 ] := '0';
  1060. ***** ^ not supported yet
  1061. ***** ^ not supported yet
  1062. 515 DEC( InsertionPoint );
  1063. ***** ^ undeclared identifier
  1064. ***** ^ not supported yet
  1065. 516 END;
  1066. 517 ELSE
  1067. 518 TheStr[ InsertionPoint - 1 ] := '0';
  1068. ***** ^ not supported yet
  1069. ***** ^ not supported yet
  1070. 519 DEC( InsertionPoint );
  1071. ***** ^ undeclared identifier
  1072. ***** ^ not supported yet
  1073. 520 END;
  1074. 521 END;
  1075. 522 ELSE
  1076. 523 IF NOT AtLeadingZero THEN
  1077. 524 StrEdit.DeleteRightJustified( TheStr,
  1078. ***** ^ not supported yet
  1079. ***** ^ not supported yet
  1080. ***** ^ not supported yet
  1081. 525 InsertionPoint - 1, 1 );
  1082. ***** ^ not supported yet
  1083. 526 IF (NOT PosUtils.Present(TheStr[InsertionPoint - 1],
  1084. ***** ^ not supported yet
  1085. ***** ^ not supported yet
  1086. ***** ^ not supported yet
  1087. ***** ^ not supported yet
  1088. 527 '0123456789')) THEN
  1089. ***** ^ not supported yet
  1090. 528 AtLeadingZero := TRUE;
  1091. 529 IF TheStr[InsertionPoint - 1] = '-' THEN
  1092. ***** ^ not supported yet
  1093. ***** ^ not supported yet
  1094. 530 (*Get rid of the minus sign, if it's there.*)
  1095. 531 StrEdit.DeleteRightJustified( TheStr,
  1096. ***** ^ not supported yet
  1097. ***** ^ not supported yet
  1098. ***** ^ not supported yet
  1099. 532 InsertionPoint - 1, 1 );
  1100. ***** ^ not supported yet
  1101. 533 END;
  1102. 534 StrEdit.InsertRightJustified( '0', TheStr,
  1103. ***** ^ not supported yet
  1104. ***** ^ not supported yet
  1105. ***** ^ not supported yet
  1106. 535 InsertionPoint );
  1107. ***** ^ not supported yet
  1108. 536 END;
  1109. 537 END;
  1110. 538 END;
  1111. 539 ELSE
  1112. 540 END;
  1113. 541 UNTIL BigSets.InSet( ExitKeys, LastKey );
  1114. ***** ^ not supported yet
  1115. ***** ^ not supported yet
  1116. ***** ^ not supported yet
  1117. ***** ^ not supported yet
  1118. 542 VWindows.SetCursorHeight( WindowHandle, SavedHeight );
  1119. ***** ^ not supported yet
  1120. ***** ^ not supported yet
  1121. ***** ^ not supported yet
  1122. ***** ^ not supported yet
  1123. 543 END ReadNumeric;
  1124. ***** ^ not supported yet
  1125. 544
  1126. 545
  1127. 546 BEGIN
  1128. 547 Initialized := FALSE;
  1129. 548 Init();
  1130. ***** ^ not supported yet
  1131. ***** ^ not supported yet
  1132. 549 END StrInput.
  1133. ***** ^ not supported yet
  1134. 583 errors