USEDDE.PAS 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224
  1. Procedure USE_73(p1,p2,p3:a;var rez:a); { WINPROLOG }
  2. { Waits for Initialisation message from DDE }
  3. begin
  4. {$IFDEF WIN}
  5. rez:=0;
  6. if PLSTR(P1,STR,L,true,SV1) then begin
  7. if PLSTR(P2,STR,L,true,SV2) then begin
  8. WinProlog(SV1,SV2);
  9. WinLoopInit;
  10. end;end;
  11. {$ELSE}
  12. rez:=0;
  13. writeln('Starting DDE dialog');
  14. {$ENDIF}
  15. end;
  16. Procedure USE_81(p1,p2,p3:a;var rez:a); { WINPROLOG }
  17. { Waits for Initialisation message from DDE }
  18. begin
  19. {$IFDEF WIN}
  20. rez:=0;
  21. if PLSTR(P1,STR,L,true,SV1) then begin
  22. if PLSTR(P2,STR,L,true,SV2) then begin
  23. WinProlog(SV1,SV2);
  24. {WinLoopInitStand;}
  25. end;end;
  26. {$ELSE}
  27. rez:=0;
  28. writeln('Starting DDE dialog');
  29. {$ENDIF}
  30. end;
  31. Procedure USE_74(p1,p2,p3:a;var rez:a); { WINGETMES }
  32. begin
  33. rez:=0;
  34. {$IFDEF WIN}
  35. SVAR:=WINGETMESS;
  36. {$ELSE}
  37. WRITE('"DDE>"');
  38. READLN(SVAR);(* Enters from screen *)
  39. {$ENDIF}
  40. REZ:=Str_to_atom(SVAR);
  41. end;
  42. Procedure USE_75(p1,p2,p3:a;var rez:a); {WINANSWER}
  43. begin
  44. if PLSTR(P1,STR,L,true,SV1) then
  45. {$IFDEF WIN}
  46. WINANSWER(SV1);
  47. {$ELSE}
  48. begin
  49. WRITELN;
  50. WriteLN('DDE:"',SV1,'"');
  51. end;
  52. {$ENDIF}
  53. end;
  54. Procedure USE_82(p1,p2,p3:a;var rez:a);
  55. { msgbox - SHOWS a message (up to 80 chars) on the screen }
  56. begin
  57. rez:=0;
  58. if PLSTR(P1,STR,L,true,SV1) then begin
  59. if PLSTR(P2,STR,L,true,SV2) then begin
  60. {$IFDEF WIN}
  61. if PLNUM(P3,IM[1]) then IM[2]:=MSGBOX(SV1,SV2,IM[1])
  62. else IM[2]:=MSGBOX(SV1,SV2,mb_iconInformation);
  63. {$ELSE}
  64. rez:=0;
  65. writeln('Message: ',SV1,':');
  66. writeln(SV2);
  67. Writeln('Press ENTER to continue...');
  68. readln;
  69. IM[2]:=1;
  70. {$ENDIF}
  71. Gets1(rez,x.sa);
  72. With x.snd^ do begin dtype:=number;val:=IM[2];end;
  73. end;end;
  74. end;
  75. Procedure USE_84(p1,p2,p3:a;var rez:a);
  76. BEGIN
  77. rez:=0;
  78. { writeln('S1');}
  79. if PLNUM(P1,IM[1]) then begin
  80. { writeln('S2');}
  81. rez:=0;
  82. if PLNUM(P2,IM[2]) then
  83. begin
  84. { writeln('S3');}
  85. rez:=0;
  86. {$IFDEF WIN}
  87. SETWINCRT(IM[1],IM[2]);
  88. {$ENDIF}
  89. end;end;end;
  90. Procedure USE_83(p1,p2,p3:a;var rez:a);
  91. { input box - SHOWS a message (up to 60 chars) on the screen;
  92. returns an answer }
  93. begin
  94. rez:=0;
  95. if PLSTR(P1,STR,L,true,SV1) then begin
  96. if not PLSTR(P2,STR,L,true,SV2) then SV2:=' ';
  97. {$IFDEF WIN}
  98. DoInpBox(mainwindow,SV2,SV1);
  99. {$ELSE}
  100. rez:=0;
  101. writeln('INPUT:',SV1);
  102. writeln('(',SV2,')');
  103. Writeln('ENTER answer to continue...');
  104. Readln(SV2);
  105. {$ENDIF}
  106. REZ:=Str_TO_Atom(SV2);
  107. end;
  108. end;
  109. { German for Windows }
  110. (*upcase_tab[chr(228)]:=chr(196);
  111. upcase_tab[chr(246)]:=chr(214);
  112. upcase_tab[chr(252)]:=chr(220);*)
  113. Procedure USE_85(p1,p2,p3:a;var rez:a);
  114. { UPCASE }
  115. begin
  116. rez:=0;
  117. if PLSTR(P1,STR,L,true,SV1) then begin
  118. for j:=1 to Length(SV1) do
  119. case SV1[j] of
  120. 'a'..'z' : SV1[j]:=Chr(Ord(Sv1[j])-32);
  121. chr(228) : SV1[j]:=chr(196);
  122. chr(246) : SV1[j]:=chr(214);
  123. chr(252) : SV1[j]:=chr(220);
  124. else begin end;
  125. end;
  126. rez:=Str_to_textatom(SV1); (* Changed in version 2.41 3-FEB-93 *)
  127. end;
  128. end;
  129. Procedure USE_86(p1,p2,p3:a;var rez:a);
  130. { LOCASE }
  131. begin
  132. rez:=0;
  133. if PLSTR(P1,STR,L,true,SV1) then begin
  134. for j:=1 to Length(SV1) do
  135. case SV1[j]of
  136. 'A'..'Z': SV1[j]:=Chr(Ord(Sv1[j])+32);
  137. chr(196) : SV1[j]:=chr(228);
  138. chr(214) : SV1[j]:=chr(246);
  139. chr(220) : SV1[j]:=chr(252);
  140. else begin end;
  141. end;
  142. rez:=Str_to_textatom(SV1); (* Changed in version 2.41 3-FEB-93 *)
  143. end;
  144. end;
  145. Procedure USE_87(p1,p2,p3:a;var rez:a);
  146. { SUBSTR }
  147. begin
  148. rez:=0;
  149. if PLSTR(P1,STR,L,true,SV1) then begin
  150. if PLNUM(P2,IM[1]) then
  151. if not PLNUM(P3,IM[2]) then IM[2]:=L;
  152. rez:=Str_to_textatom(COPY(SV1,IM[1],IM[2])); (* Changed in version 2.41 3-FEB-93 *)
  153. end;
  154. end;
  155. Procedure USE_88(p1,p2,p3:a;var rez:a);
  156. { INDEX }
  157. begin
  158. rez:=0;
  159. if PLSTR(P1,STR,L,true,SV1) then begin
  160. if PLSTR(P2,STR,L,true,SV2) then
  161. rez:=Long_to_atom(Pos(SV1,SV2));
  162. end;
  163. end;
  164. Procedure USE_89(p1,p2,p3:a;var rez:a);
  165. { GET DATE and TIME }
  166. var aw:array[1..4]of word;
  167. begin
  168. rez:=0;
  169. Getdate(aw[1],aw[2],aw[3],aw[4]);
  170. for i:=1 to 4 do Lconc(rez,Long_to_atom(aw[i]));
  171. Gettime(aw[1],aw[2],aw[3],aw[4]);
  172. for i:=1 to 4 do Lconc(rez,Long_to_atom(aw[i]));
  173. end;
  174. Procedure USE_90(p1,p2,p3:a;var rez:a);
  175. VAR
  176. III: INTEGER;
  177. HLT:integer;
  178. BEGIN
  179. if not PLNUM(P1,IM[2]) then IM[2]:=105;
  180. if PLNUM(P2,IM[1]) then HLT:=IM[1] ELSE HLT:=0;
  181. FOR III := 1 TO FILENUM DO
  182. IF FILETAB[III].ISOPEN and not FILETAB[III].SCREEN THEN
  183. BEGIN
  184. WRITELN(FILES[III]);
  185. CLOSE(FILES[III]);
  186. END;
  187. If OUT_OPEN then Close(Out);
  188. CLOSEA;CLOSES;
  189. {$IFDEF WIN}
  190. SendMessage(hwnd(-1),wm_user+IM[2],0,0);
  191. Donewincrt;
  192. {$ENDIF}
  193. HALT(HLT);
  194. END;