home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD2.mdf / c / library / dos / window / winedit / w_tbp_xx.ifc < prev    next >
Encoding:
Text File  |  1993-07-28  |  12.6 KB  |  410 lines

  1. {$N+}
  2. {$E+}
  3. {$A-}
  4. unit w_tbp_55;
  5.  
  6. interface
  7. uses dos,crt;
  8.  
  9.  
  10. type
  11.  
  12. DAte = record
  13.     year:integer;
  14.     day :integer;
  15.     mon :integer;
  16.     end;
  17.  
  18. TIme = record
  19.     hour : integer;
  20.     min  : integer;
  21.     sec  : integer;
  22.     end;
  23.  
  24. DMark = record
  25.     mark : longint;
  26.     pfen : integer;
  27.     end;
  28.  
  29.  
  30. const
  31.  
  32.     (*
  33.     Tastaturcodes
  34.     *)
  35.     KEY_C_L             =$14B;
  36.     KEY_C_R             =$14D;
  37.     KEY_C_U             =$148;
  38.     KEY_C_D             =$150;
  39.     KEY_BS              =8;
  40.     KEY_CR              =13;
  41.     KEY_ESC             =27;
  42.     KEY_HOME            =327;
  43.     KEY_END             =335;
  44.     KEY_PGUP            =329;
  45.     KEY_PGDN            =337;
  46.     KEY_INS             =338;
  47.     KEY_DEL             =339;
  48.     KEY_CTRLLEFT        =371;
  49.     KEY_CTRLRIGHT       =372;
  50.     KEY_F1              =315;
  51.     KEY_F2              =316;
  52.     KEY_F3              =317;
  53.     KEY_F4              =318;
  54.     KEY_F5              =319;
  55.     KEY_F6              =320;
  56.     KEY_F7              =321;
  57.     KEY_F8              =322;
  58.     KEY_F9              =323;
  59.     KEY_F10             =324;
  60.     KEY_CNTRLA          =1;
  61.     KEY_CNTRLB          =2;
  62.     KEY_CNTRLC          =3;
  63.     KEY_CNTRLD          =4;
  64.     KEY_CNTRLE          =5;
  65.     KEY_CNTRLF          =6;
  66.     KEY_CNTRLG          =7;
  67.     KEY_CNTRLH          =8;
  68.     KEY_CNTRLI          =9;
  69.     KEY_CNTRLJ          =10;
  70.     KEY_CNTRLK          =11;
  71.     KEY_CNTRLL          =12;
  72.     KEY_CNTRLM          =13;
  73.     KEY_CNTRLN          =14;
  74.     KEY_CNTRLO          =15;
  75.     KEY_CNTRLP          =16;
  76.     KEY_CNTRLQ          =17;
  77.     KEY_CNTRLR          =18;
  78.     KEY_CNTRLS          =19;
  79.     KEY_CNTRLT          =20;
  80.     KEY_CNTRLU          =21;
  81.     KEY_CNTRLV          =22;
  82.     KEY_CNTRLW          =23;
  83.     KEY_CNTRLX          =24;
  84.     KEY_CNTRLY          =25;
  85.     KEY_CNTRLZ          =26;
  86.     KEY_ALTF1           =$168;
  87.     KEY_ALTF2           =$169;
  88.     KEY_ALTF3           =$16a;
  89.     KEY_ALTF4           =$16b;
  90.     KEY_ALTF5           =$16c;
  91.     KEY_ALTF6           =$16d;
  92.     KEY_ALTF7           =$16e;
  93.     KEY_ALTF8           =$16f;
  94.     KEY_ALTF9           =$170;
  95.     KEY_ALTF10          =$171;
  96.     KEY_ALTA            =$11e;
  97.     KEY_ALTB            =$130;
  98.     KEY_ALTC            =$12e;
  99.     KEY_ALTD            =$120;
  100.     KEY_ALTE            =$112;
  101.     KEY_ALTF            =$121;
  102.     KEY_ALTG            =$122;
  103.     KEY_ALTH            =$123;
  104.     KEY_ALTI            =$117;
  105.     KEY_ALTJ            =$124;
  106.     KEY_ALTK            =$125;
  107.     KEY_ALTL            =$126;
  108.     KEY_ALTM            =$132;
  109.     KEY_ALTN            =$131;
  110.     KEY_ALTO            =$118;
  111.     KEY_ALTP            =$119;
  112.     KEY_ALTQ            =$110;
  113.     KEY_ALTR            =$113;
  114.     KEY_ALTS            =$11f;
  115.     KEY_ALTT            =$114;
  116.     KEY_ALTU            =$116;
  117.     KEY_ALTV            =$12f;
  118.     KEY_ALTW            =$111;
  119.     KEY_ALTX            =$12d;
  120.     KEY_ALTY            =$115;
  121.     KEY_ALTZ            =$12c;
  122.  
  123.  
  124.  
  125.     (*
  126.     Mauscodes für die Tastendruck rechts (R), links (L) und mitte (M)
  127.     *)
  128.  
  129.     (*
  130.     Kurzer Maustastendruck liefert:
  131.     *)
  132.     MOUSE_L_B           =$3001;
  133.     MOUSE_R_B           =$3002;
  134.     MOUSE_M_B           =$3004;
  135.  
  136.     (*
  137.     Das Drücken einer Taste (mit anschließendem Bewegen der Maus) liefert:
  138.     *)
  139.     MOUSE_L_B_P         =$3011;
  140.     MOUSE_R_B_P         =$3012;
  141.     MOUSE_M_B_P         =$3014;
  142.  
  143.     (*
  144.     Eine Mausbewegung wird dargestellt mit:
  145.     *)
  146.     MOUSE_MOVE          =$300a;
  147.  
  148.     (*
  149.     Das Loslassen einer Taste (nach Bewegen der Maus) liefert:
  150.     *)
  151.     MOUSE_L_B_R         =$3021;
  152.     MOUSE_R_B_R         =$3022;
  153.     MOUSE_M_B_R         =$3024;
  154.  
  155.  
  156.  
  157.  
  158.     MOUSE_PRESS         =$3010;
  159.     MOUSE_RELEASE       =$3020;
  160.     MOUSE_KLICK         =$3000;
  161.  
  162.     (*
  163.     Konstanten zur Identifizierung von Feld-Typen
  164.     *)
  165.     ISSTRING =    0;
  166.     ISCHAR   =    1;
  167.     ISBYTE   =    2;
  168.     ISINT    =    3;
  169.     ISWORD   =    4;
  170.     ISLONG   =    5;
  171.     ISDOUBLE =    6;
  172.     ISDATE   =    7;
  173.     ISTIME   =    8;
  174.     ISDMARK  =    9;
  175.  
  176.  
  177.  
  178.     (*
  179.     Folgende zwei Konstanten dienen der Einstellung der Betriebsart
  180.     der Funktionen w_kbd und w_mousekbd
  181.     *)
  182.     SAMPLE              =0;
  183.     REQUEST             =1;
  184.  
  185.  
  186.     (*
  187.     Mit diesen Konstanten läßt sich festlegen ob eine Ausgabe links- oder
  188.     rechtsbündig auf einen Kanal erfolgt
  189.     *)
  190.     LINKSBUENDIG        =0;
  191.     RECHTSBUENDIG       =1;
  192.  
  193.  
  194.     (*
  195.     Bei Aufruf von w_init(..) zur Steuerung der Ausgabe
  196.     *)
  197.     DIREKT              =0;
  198.     BIOS                =1;
  199.  
  200.     (*
  201.     Zum Laden einer Maske mit oder ohne virtuellem Schirm
  202.     *)
  203.     VIRTUELL            =0;
  204.     NOVIRTUELL          =1;
  205.  
  206.  
  207.  
  208.  
  209. (*
  210. Basis-Routinen
  211. *)
  212. function  w_init(bios:integer):integer;
  213. function  w_deinit:integer;
  214. function  w_error:integer;
  215. function  w_load(filename:string; mode:integer):integer;
  216. function  w_open(wnum:integer):integer;
  217. function  w_close:integer;
  218. function  w_erase(wnum:integer):integer;
  219. procedure w_setcolors(colortable:pointer);
  220. function  w_getcolortable:pointer;
  221.  
  222.  
  223. function  w_lib_open(name:string):integer;
  224. function  w_lib_close:integer;
  225.  
  226. (*
  227. Routinen zum Menü-Aufbau
  228. *)
  229. function  w_switch(wnum:integer):integer;
  230. function  w_switch_pos(wnum,position:integer):integer;
  231. function  w_switch_mouse_esc(wnum,mode:integer):integer;
  232. function  w_switch_mark_mode(wnum,mode:integer):integer;
  233. function  w_switch_mouse_cr(wnum,mode:integer):integer;
  234. function  w_switch_visible_cr(wnum:integer):integer;
  235. function  w_switch_unvisible_cr(wnum:integer):integer;
  236. function  w_switch_auto_esc(wnum:integer):integer;
  237. function  w_switch_break_on_key(wnum,mode:integer):integer;
  238. function  w_switch_last_key(wnum:integer):integer;
  239. function  w_switch_first_key(wnum,key:integer):integer;
  240. function  w_switch_matrix(wnum,mode,left,right,top,bottom:integer):integer;
  241. function  w_switch_range(wnum,first,last:integer):integer;
  242.  
  243.  
  244.  
  245.  
  246.  
  247. (*
  248. Routinen zur Ein-und Ausgabe
  249. *)
  250. function  strtodate(s:string;var d:DAte):integer;
  251. function  strtotime(s:string;var t:TIme):integer;
  252. function  strtodmark(s:string;var d:DMark):integer;
  253. function  w_in_longint(wnum,field:integer;var destin:longint;min,max:longint):integer;
  254. function  w_in_double(wnum,fnum:integer;var destin,min,max:double):integer;
  255. function  w_in_date(wnum,fnum:integer;var destin,min,max:DAte):integer;
  256. function  w_in_time(wnum,fnum:integer;var destin,min,max:TIme):integer;
  257. function  w_in_dmark(wnum,fnum:integer;var destin,min,max:DMark):integer;
  258. function  w_in_int(wnum,field:integer;var destin:integer;min,max:integer):integer;
  259. function  w_in_word(wnum,field:integer;var destin:word;min,max:word):integer;
  260. function  w_in_str(wnum,field,stringlen:integer;var s:string;legal:string):integer;
  261. function  w_in_break_on_key(mode:integer):integer;
  262. function  w_in_last_key:integer;
  263. procedure w_in_first_key(key:integer);
  264. procedure w_in_reset_curpos;
  265.  
  266.  
  267.  
  268.  
  269. function  w_out_str(wnum,field:integer;s:string):integer;
  270. function  w_vout_str(wnum,field:integer;s:string):integer;
  271. function  w_out_byte(wnum,fnum:integer;b:byte):integer;
  272. function  w_vout_byte(wnum,fnum:integer;b:byte):integer;
  273. function  w_out_char(wnum,fnum:integer;c:char):integer;
  274. function  w_vout_char(wnum,fnum:integer;c:char):integer;
  275. function  w_out_int(wnum,fnum,i:integer):integer;
  276. function  w_vout_int(wnum,fnum,i:integer):integer;
  277. function  w_out_word(wnum,fnum:integer;w:word):integer;
  278. function  w_vout_word(wnum,fnum:integer;w:word):integer;
  279. function  w_out_longint(wnum,fnum:integer;l:longint):integer;
  280. function  w_vout_longint(wnum,fnum:integer;l:longint):integer;
  281. function  w_out_double(wnum,fnum:integer;var d:double):integer;
  282. function  w_vout_double(wnum,fnum:integer;var d:double):integer;
  283. function  w_out_date(wnum,fnum:integer;var d:DAte):integer;
  284. function  w_vout_date(wnum,fnum:integer;var d:DAte):integer;
  285. function  w_out_time(wnum,fnum:integer;var t:time):integer;
  286. function  w_vout_time(wnum,fnum:integer;var t:time):integer;
  287. function  w_out_dmark(wnum,fnum:integer;var d:DMark):integer;
  288. function  w_vout_dmark(wnum,fnum:integer;var d:DMark):integer;
  289. function  w_vout(wnum:integer):integer;
  290. procedure w_out_temp_attribute(attribute:byte);
  291. procedure w_out_temp_format(format:integer);
  292.  
  293.  
  294.  
  295.  
  296. function  w_in_field(wnum,fnum:integer;var buffer):integer;
  297. function  w_out_field(wnum,fnum:integer;var buffer):integer;
  298. function  w_vout_field(wnum,fnum:integer;var buffer):integer;
  299. function  w_out_struct(wnum,first,last:integer;var source):integer;
  300. function  w_vout_struct(wnum,first,last:integer;var source):integer;
  301. function  w_in_struct(wnum,first,last:integer;var destin):integer;
  302. function  w_struct_sizeof(wnum,first,last:integer):integer;
  303. function  w_struct_init(wnum,first,last:integer;var destin;max:integer):integer;
  304.  
  305.  
  306.  
  307.  
  308. (*
  309. Routinen zur Mausverwaltung
  310. *)
  311. function  w_mouse_init:integer;
  312. function  w_mouse_deinit:integer;
  313. function  w_mouse_exist:integer;
  314. procedure w_mouse_gotoxy(x,y:integer);
  315. function  w_mouse_cur_x:integer;
  316. function  w_mouse_cur_y:integer;
  317. function  w_mouse_pre_x:integer;
  318. function  w_mouse_pre_y:integer;
  319. function  w_mouse_rel_x:integer;
  320. function  w_mouse_rel_y:integer;
  321.  
  322.  
  323. (*
  324. Maus- und Tastaturabfrage
  325. *)
  326. function  w_mousekbd(mode:integer):integer;
  327. function  w_kbd(mode:integer):integer;
  328.  
  329.  
  330. (*
  331. Abruf von Maskeninformationen
  332. *)
  333.  
  334. function  w_xyon_win(wnum,x,y:integer):integer;
  335. function  w_xyon_field(wnum,x,y:integer):integer;
  336.  
  337. function  w_is_wnum(wnum:integer):integer;
  338. function  w_is_field(wnum,field:integer):integer;
  339. function  w_info_vscreen(wnum:integer):pointer;
  340. function  w_info_bscreen(wnum:integer):pointer;
  341. function  w_info_win_left(wnum:integer):integer;
  342. function  w_info_win_right(wnum:integer):integer;
  343. function  w_info_win_top(wnum:integer):integer;
  344. function  w_info_win_bottom(wnum:integer):integer;
  345. function  w_info_attr(wnum,x,y:integer):byte;
  346. function  w_info_text(wnum,x,y:integer):char;
  347. function  w_info_field_num(wnum:integer):integer;
  348. function  w_info_field_x(wnum,field:integer):integer;
  349. function  w_info_field_y(wnum,field:integer):integer;
  350. function  w_info_field_width(wnum,field:integer):integer;
  351. function  w_info_field_rev_attrib(wnum,fnum:integer):integer;
  352. function  w_info_field_out_attrib(wnum,fnum:integer):integer;
  353. function  w_info_field_in_attrib(wnum,fnum:integer):integer;
  354. function  w_info_field_type(wnum,fnum:integer):integer;
  355. function  w_info_field_in_right(wnum,fnum:integer):integer;
  356. function  w_info_field_out_right(wnum,fnum:integer):integer;
  357. function  w_info_field_in_owrite(wnum,fnum:integer):integer;
  358. function  w_info_field_del(wnum,fnum:integer):integer;
  359. function  w_info_field_min(wnum,fnum:integer;min:pointer):pointer;
  360. function  w_info_field_max(wnum,fnum:integer;max:pointer):pointer;
  361.  
  362.  
  363.  
  364. (*
  365. Bildschirmroutinen
  366. *)
  367. procedure v_init(bios:integer);
  368. function  v_mono:integer;
  369. function  v_getwin(left,top,right,bottom:integer;var buffer):integer;
  370. function  v_putwin(left,top,right,bottom:integer;var buffer):integer;
  371. function  v_gettext(left,top,right,bottom:integer;var buffer):integer;
  372. function  v_puttext(left,top,right,bottom:integer;var buffer):integer;
  373. function  v_getattr(left,top,right,bottom:integer;var buffer):integer;
  374. function  v_putattr(left,top,right,bottom:integer;var buffer):integer;
  375. function  v_movewin(sx1,sy1,sx2,sy2,dx1,dy1:integer):integer;
  376. procedure v_gotoxy(x,y:integer);
  377. function  v_wherexy:word;
  378. function  v_wherex:integer;
  379. function  v_wherey:integer;
  380. function  v_getcursor:word;
  381. procedure v_setcursor(shape:word);
  382. procedure v_hidecursor;
  383. procedure v_showcursor;
  384. procedure v_clrscr;
  385.  
  386.  
  387.  
  388. (*
  389. Funktionen zum MICROSOFT-Maus-Interface
  390. *)
  391. function  mouse_init(var buttons:word):integer;
  392. procedure mouse_show_cursor;
  393. procedure mouse_hide_cursor;
  394. function  mouse_get_status(var buttons,xpos,ypos:integer):word;
  395. procedure mouse_set_pos(xpos,ypos:integer);
  396. function  mouse_get_press_status(button:word;var status,presses:word;var xppos,yppos:integer):word;
  397. function  mouse_get_release_status(button:word;var status,releases:word;var xrpos,yrpos:integer):word;
  398. procedure mouse_set_xrange(xmin,xmax:integer);
  399. procedure mouse_set_yrange(ymin,ymax:integer);
  400. procedure mouse_def_graphcursorblock(xhotspot,yhotspot:integer;cursormaskpointer:word);
  401. procedure mouse_def_textcursor(cursorselect,screenmask,cursormask:word);
  402. procedure mouse_get_motioncounter(var xcount,ycount:integer);
  403. procedure mouse_def_eventhandler(eventmask:word;handler:pointer);
  404. procedure mouse_ligthpen_emulation_on;
  405. procedure mouse_ligthpen_emulation_off(xpos,ypos:integer);
  406. procedure mouse_set_motion_per_pixel(xstep,ystep:integer);
  407. procedure mouse_conditional_hide_cursor(left,right,top,bottom:integer);
  408.  
  409.  
  410.