home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: InfoMgt / InfoMgt.zip / kim21.zip / EDIT.KIM < prev    next >
Text File  |  1995-07-27  |  22KB  |  956 lines

  1.  
  2.   rem Datum          :    12.93 / 4.94 / 7.94
  3.   rem Version        :    2.1
  4.   rem Programm       :    Editor
  5.   rem Programmierer  :    JK
  6.   
  7.   deffloat a,b,c,i,t,y,flag,taste,ok
  8.   defstring objekt, _suchtext, _tauschtext,ostyp
  9.   deffloat _case , _tausch_key
  10.   defstring _pfad_kim , _pfad_kmask, _pfad_arbeit
  11.   defstring aktpfad,_conf_datei,zeichen
  12.   deffloat _load_pos
  13.   dim _load_datei,1,5
  14.   
  15.   deffloat _text_insert,..
  16.          _text_format,..
  17.          _text_mlfie_cftext,..
  18.          _text_setsel,..
  19.          _text_backcol,..
  20.          _text_textcol,..
  21.          _text_undo,..
  22.          _text_getline,..
  23.          _text_setline,..
  24.          _text_len,..
  25.          _text_clear,..
  26.          _textlen,..
  27.          _text_limit
  28.   
  29.   
  30.   rem FLAGS im OS/2 Message-System für MLE-Objekte
  31.   rem siehe IBM/REDBOOKS
  32.   
  33.   _text_format  = 449
  34.   _text_insert  = 457
  35.   _text_setsel  = 458
  36.   _text_backcol = 468
  37.   _text_textcol = 466
  38.   _text_undo    = 462
  39.   _text_getline = 445
  40.   _text_setline = 446
  41.   _text_len     = 448
  42.   _text_clear   = 475
  43.   _text_limit   = 432
  44.   
  45.   
  46.   os_type ostyp
  47.   
  48.   if ostyp<>"OS2" then
  49.     beep : beep
  50.     end
  51.   endif
  52.   
  53.   
  54.   rem _textlen=32700
  55.   _textlen=64000
  56.   
  57.   dimmemo test1,_textlen
  58.   
  59.   defstring _dateiname
  60.   defstring _dummy
  61.   
  62.   _dateiname="NONAME.KIM"
  63.   
  64.   
  65.   rem Definiert eine Palette mit der Vordergrundsfarbe 7 und Hintergrund 0
  66.   def_palette 1,1,15
  67.   def_palette 2,0,7
  68.   def_palette 3,4,7
  69.   def_palette 9,0,7
  70.   
  71.   loadfont "H10","Helv" ,10
  72.   loadfont "H8" ,"Helv",8
  73.   loadfont "T12","Times New Roman Bold",12
  74.   loadfont "C8","Courier" ,8
  75.   
  76.   set_keymap "F2",10002,2
  77.   set_keymap "F3",10003,3
  78.   set_keymap "F4",10004,4
  79.   set_keymap "F5",10005,5
  80.   set_keymap "F6",10006,6
  81.   set_keymap "F7",10007,7
  82.   set_keymap "F8",10008,8
  83.   set_keymap "F9",10009,9
  84.   
  85.   rem Pfadzuweisungen laden
  86.   
  87.   getdir aktpfad
  88.   _conf_datei=aktpfad+"\kex.cfg"
  89.   
  90.   exist _conf_datei,ok
  91.   
  92.   if ok=1 then
  93.     open 2,_conf_datei,"r"
  94.     gets 2,_pfad_kim
  95.     gets 2,_pfad_kmask
  96.     gets 2,_pfad_arbeit
  97.     for a=1 to 5
  98.       gets 2,_load_datei[a]
  99.       if _load_datei[a]="EOF" then
  100.         _load_datei[a]=""
  101.       endif
  102.       if _load_datei[a]<>"" then _load_pos=_load_pos+1 : endif
  103.     next 
  104.     
  105.     close 2
  106.   else
  107.     getdir aktpfad
  108.     _pfad_kim  =aktpfad+"\KIM.EXE"
  109.     _pfad_kmask=aktpfad+"\KMASK.KIM"
  110.     _pfad_arbeit=""
  111.     open 2,_conf_datei
  112.     puts 2,_pfad_kim
  113.     puts 2,_pfad_kmask
  114.     puts 2,_pfad_arbeit 
  115.     puts 2,""
  116.     puts 2,""
  117.     puts 2,""
  118.     puts 2,""
  119.     puts 2,""
  120.     close 2
  121.     
  122.   endif
  123.  
  124.   rem Wechseln in das Arbeitsverzeichnis
  125.     mid _pfad_arbeit,zeichen,2,1
  126.     if zeichen=":" then
  127.       mid _pfad_arbeit,zeichen,1,1
  128.       ucase zeichen
  129.       asc zeichen,t
  130.       t=t-64
  131.       setdrive t,y
  132.     endif    
  133.     chdir _pfad_arbeit,t
  134.   
  135.   
  136.   def_window_st "window",2,2,75,15,"KIM-Editor"
  137.   rem set_item_status "window",0,"maximized"
  138.   call fenster_inhalt()
  139.   
  140.   rem Menüpunkte akualisieren (KEX.CFG)
  141.   set_item_array "lo_",_load_datei,1,5
  142.   
  143.   
  144.   win_paint "window"
  145.   
  146.   rem Hintergrundfarbe des MLE-Fensters
  147.   winsentmsg "text",_text_backcol,15,0,a
  148.   winsentmsg "text",_text_textcol,9,0,a
  149.   
  150.   rem Textbox erhält Eingabefokus
  151.   event_on_item "text","select"
  152.   event_on_item "text","current"
  153.   
  154.   
  155.   
  156.   set_item "pr2",_dateiname
  157.  
  158.   
  159.   while i<>1000
  160.     win_ev i
  161.     
  162.     if i<>1 then
  163.       winsentmsg "text",459,4,0,a
  164.       rem winsentmsg "text",445,a,0,a
  165.       if a<>b then
  166.             form a,_dummy,0,5
  167.             _dummy="Zeichen :"+_dummy
  168.             set_item "pr4",_dummy
  169.             b=a
  170.       endif
  171.     endif
  172.     
  173.     get_item_pos objekt,taste
  174.     if taste=13 then
  175.       call auswerten(objekt,i)
  176.     endif
  177.     if taste>10000 then
  178.       call fx_tasten(taste)
  179.     endif
  180.     
  181.     
  182.   wend
  183.   
  184.   rem Konfigurationsdatei schreiben
  185.   
  186.   kill _conf_datei
  187.   open 2,_conf_datei
  188.   puts 2,_pfad_kim
  189.   puts 2,_pfad_kmask
  190.   puts 2,_pfad_arbeit
  191.   for a=1 to 5
  192.     puts 2,_load_datei[a]
  193.   next 
  194.   close 2
  195.   
  196.   
  197.   
  198.   end
  199.   
  200.   rem ---------------------------------------------------------------------
  201.   rem U N T E R P R O G R A M M E
  202.   rem ---------------------------------------------------------------------
  203.   
  204.   modul fx_tasten(float taste)
  205.     deffloat a,ok
  206.     defstring zeile
  207.     
  208.     if taste=10003 then
  209.       event_on_item "text","select"
  210.       event_on_item "text","current"
  211.       search_mle "text",_suchtext,0,_case,-1,zeile,a
  212.       exitmod
  213.     endif
  214.     
  215.     if taste=10004 and _tausch_key=1 then
  216.       winsentmsg "text",_text_insert,_tauschtext,0,a
  217.       search_mle "text",_suchtext,0,_case,-1,zeile,a
  218.       exitmod
  219.     endif
  220.     
  221.     if taste=10005 then
  222.       _tausch_key=0
  223.       set_item "pr3",""
  224.       exitmod
  225.     endif
  226.     
  227.     if taste=10008
  228.       call label()
  229.       exitmod
  230.     endif
  231.     
  232.     if taste=10009 then
  233.       exist "KIM.ERR",a
  234.       if a=1 then
  235.         open 6,"kim.err","r"
  236.         gets 6,zeile
  237.         close 6
  238.         val zeile,a
  239.         winsentmsg "text",_text_setsel,a,a,ok
  240.       endif
  241.     endif
  242.     
  243.     
  244.   endmod
  245.   
  246.   modul auswerten(char obj,float i)
  247.     
  248.     deffloat a,flag,ok,i
  249.     defstring suche,tausche,pfadalt,pfad
  250.     defstring rueck,zeile,zeichen,text
  251.     
  252.     if obj="datei_quit" then
  253.       call datei_veraendert(a)
  254.       if a<>3 then
  255.             i=1000
  256.       endif
  257.       exitmod
  258.     endif
  259.     if obj="datei_neu" then
  260.       get_item_status "text","changed",ok
  261.       if ok=1 then
  262.         call speichern(a)
  263.       endif
  264.       if a<>-1 then
  265.             test1=""
  266.             set_item "text",test1
  267.             event_on_item "text","redisplay"
  268.             _dateiname="NONAME.KIM"
  269.             set_item "pr2",_dateiname
  270.             set_item_status "text",1,"changed"
  271.       endif
  272.       exitmod
  273.     endif
  274.     
  275.     if obj="datei_laden" then
  276.       get_item_status "text","changed",ok
  277.       if ok=1 then
  278.         call speichern(a)
  279.       endif
  280.       call laden(a,"")
  281.       set_item_status "text",1,"changed"
  282.       exitmod
  283.     endif
  284.     
  285.     mid obj,suche,1,3
  286.     if suche="lo_" then
  287.       get_item_status "text","changed",ok
  288.       if ok=1 then
  289.         call speichern(a)
  290.       endif
  291.       get_item obj,suche
  292.       call laden(a,suche)
  293.       set_item_status "text",1,"changed"
  294.       exitmod
  295.       
  296.     endif  
  297.     
  298.     
  299.     
  300.     
  301.     if obj="datei_speichern" then
  302.       get_item_status "text","changed",a
  303.       if a<>-1 then
  304.             set_item "pr3","Datei wird gesichert..."
  305.             get_item "text",test1
  306.             savememo _dateiname,test1,a
  307.             if a<>1 then
  308.               set_item "pr3","Diese Datei wurde nicht korrekt gesichert !"
  309.             else
  310.                 set_item "pr3",""
  311.                 set_item_status "text",1,"changed"
  312.             endif
  313.         
  314.       endif
  315.       exitmod
  316.     endif
  317.     
  318.     if obj="datei_speichern2" then
  319.       call speichern(a)
  320.       exitmod
  321.     endif
  322.     
  323.     if obj="datei_druck" then
  324.       get_item "text",test1
  325.       savememo "prn",test1,a
  326.       rem open 1,"prn"
  327.       rem puts 1,test1
  328.       rem puts 1,chr(12)
  329.       close 1
  330.       exitmod
  331.     endif
  332.     
  333.     
  334.     if obj="bearbeiten_suchen" then
  335.       
  336.       call such_box("Suchen","Suchtext : ",_suchtext ,35)
  337.       set_item "pr3"," F3 = Weiter     F5 = Abbrechen     "
  338.       event_on_item "text","select"
  339.       event_on_item "text","current"
  340.       search_mle "text",_suchtext,0,_case,-1,zeile,a
  341.       exitmod
  342.     endif
  343.     
  344.     if obj="bearbeiten_tauschen" then
  345.       call tausch_box(_suchtext,_tauschtext)
  346.       _tausch_key=1
  347.       setclip _tauschtext
  348.       event_on_item "text","select"
  349.       event_on_item "text","current"
  350.       set_item "pr3"," F3 = Weiter     F4 = Tauschen     F5 = Abbrechen     "
  351.       search_mle "text",_suchtext,0,_case,-1,zeile,a
  352.       exitmod
  353.       
  354.     endif
  355.     
  356.     if obj="bearbeiten_undo" then
  357.       event_on_item "text","select"
  358.       event_on_item "text","current"
  359.       winsentmsg "text",_text_undo,0,0,a
  360.       exitmod
  361.     endif
  362.     
  363.     
  364.     
  365.     if obj="option_pfade" then
  366.       call pfad_box()
  367.       exitmod
  368.     endif
  369.     
  370.     if obj="option_fehler" then
  371.       exist "KIM.ERR",a
  372.       if a=1 then
  373.         open 6,"kim.err","r"
  374.         gets 6,zeile
  375.         close 6
  376.         val zeile,a
  377.         winsentmsg "text",_text_setsel,a,a,ok
  378.       endif
  379.     endif
  380.     
  381.     if obj="option_mask" then
  382.       rem Zuerst prüfen ob Datei sich verändert hat
  383.       call datei_veraendert(a)
  384.       if a<>3 then
  385.             get_item "pr3",zeile
  386.             set_item "pr3","Maskengenerator wird gestartet ..."
  387.             rem Verzeichnis wechseln
  388.             shell _pfad_kim,"",_pfad_kmask
  389.             set_item "pr3",zeile
  390.       endif
  391.       exitmod
  392.     endif
  393.     
  394.     
  395.     
  396.   endmod
  397.   
  398.   modul fenster_inhalt()
  399.     
  400.     def_toolbar "tool",0,0,0,0 ; "region off","border"
  401.     def_prompt "pr1",0,0," Datei : ";"H10"
  402.     def_prompt "pr2",0,0,"                                                       ";"H10"
  403.     def_prompt "pr3",0,1,"                                                       ";"color on","H10"
  404.     def_prompt "pr4",0,2,"               ";"H10"
  405.     
  406.     color_item "pr3",3
  407.     
  408.     add_item "tool","pr1","pr2","pr3","pr4"
  409.     
  410.     def_pulldown_item "p_datei","&Datei",1
  411.     def_pulldown_item "p_bearbeiten","&Bearbeiten",1
  412.     def_pulldown_item "p_start","&Start",0
  413.     def_pulldown_item "p_option","&Optionen",1
  414.     def_pulldown_item "p_tabelle","&Labeltabelle",0
  415.     
  416.     def_popup_item "datei_neu","&Neu"
  417.     def_popup_item "datei_laden","&Laden"
  418.     def_popup_item "datei_speichern","&Speichern"
  419.     def_popup_item "datei_speichern2","Speichern &unter"
  420.     def_popup_item "datei_druck","&Druck"
  421.     def_popup_item "datei_quit","&Quit"
  422.     def_popup_item "lo_0","";"sep"
  423.     def_popup_item "lo_1","1"
  424.     def_popup_item "lo_2","2"
  425.     def_popup_item "lo_3","3"
  426.     def_popup_item "lo_4","4"
  427.     def_popup_item "lo_5","5"
  428.     
  429.     
  430.     def_popup_item "bearbeiten_undo","&Rückgängig machen  "
  431.     def_popup_item "bearbeiten_suchen"  ,"&Suchen"
  432.     def_popup_item "bearbeiten_tauschen","&Tauschen"
  433.     
  434.     
  435.     def_popup_item "option_fehler","Letzte &Fehlerposition <F9>"
  436.     def_popup_item "option_pfade","Such&pfade"
  437.     def_popup_item "option_mask","Maskengenerator"
  438.     
  439.     add_item "p_datei",..
  440.     "datei_neu",..
  441.     "datei_laden",..
  442.     "datei_speichern",..
  443.     "datei_speichern2",..
  444.     "datei_druck",..
  445.     "datei_quit",..
  446.     "lo_0",..
  447.     "lo_1",..
  448.     "lo_2",..
  449.     "lo_3",..
  450.     "lo_4",..
  451.     "lo_5" 
  452.     
  453.     add_item "p_bearbeiten",..
  454.     "bearbeiten_undo",..
  455.     "bearbeiten_suchen",..
  456.     "bearbeiten_tauschen"
  457.     
  458.     add_item "p_option",..
  459.     "option_fehler",..
  460.     "option_pfade",..
  461.     "option_mask"
  462.     
  463.     
  464.     def_text "text",0,0,255,15,_textlen,test1 ; "region off","border","wrap off","C8"
  465.     
  466.     
  467.     rem Flag = 0 HZ   1 VT    sonst CORNER */
  468.     def_scrollbar "scroll1",0,0,0,0,0
  469.     def_scrollbar "scroll2",1,0,0,0,0
  470.     
  471.     
  472.     add_item "text","scroll1","scroll2"
  473.     
  474.     
  475.     
  476.     def_pulldown_menu "menu",1 ;"border"
  477.     add_item "menu","p_datei","p_bearbeiten","p_start","p_option","p_start","p_tabelle"
  478.     add_item "window","menu","tool","text"
  479.     
  480.   endmod
  481.   
  482.   modul speichern(float flag)
  483.     deffloat ok
  484.     defstring datei
  485.     
  486.     flag=0
  487.     
  488.     msgbox "Datei speichern ?",1,ok,""
  489.     if ok=1 then
  490.       load "window","*.kim",datei,"Datei speichern "
  491.       if datei="" then
  492.             flag=-1
  493.       else
  494.             get_item "text",test1
  495.             savememo datei,test1,ok
  496.             _dateiname=datei
  497.             set_item "pr2",_dateiname
  498.       endif
  499.     endif
  500.     
  501.   endmod
  502.   
  503.   
  504.   modul laden(float flag,char datei)
  505.     deffloat ok,i
  506.     defstring text,text2
  507.     flag=0
  508.     if datei="" then 
  509.       load "window","*.kim",datei,"Datei laden "
  510.     endif
  511.     
  512.     if datei="" then
  513.       flag=-1
  514.     else
  515.       filelen datei,ok
  516.       if ok>_textlen then
  517.               msgbox "Datei zu groß !",0,ok,""
  518.               flag=-1
  519.               exitmod
  520.       endif
  521.       set_item "pr3","Datei wird geladen ..."
  522.       loadmemo datei,test1,ok
  523.       _dateiname=datei
  524.       set_item "text",test1
  525.       rem event_on_item "text","redisplay"
  526.       set_item "pr2",_dateiname
  527.       
  528.       rem Menü-verändern
  529.       ok=0
  530.       for i=1 to 5
  531.         if _load_datei[i]=datei then
  532.           ok=1
  533.         endif
  534.       next
  535.       if ok=0 then      
  536.         _load_pos=_load_pos+1
  537.         if _load_pos>5 then _load_pos=1 :endif
  538.         form _load_pos,text,0,1 
  539.         text="lo_"+text
  540.         set_item text,_dateiname
  541.         _load_datei[_load_pos]=_dateiname
  542.       endif
  543.     endif
  544.     
  545.     set_item "pr3",""
  546.   endmod
  547.   
  548.   
  549.   
  550.   modul input_box(char ueber,char text,char ausgabe,float laenge)
  551.     
  552.     deffloat y,t
  553.     defstring meier
  554.     
  555.     
  556.     def_window "msg",10,5, 45,6
  557.     def_border "msg_border"
  558.     def_titel  "msg_titel",ueber
  559.     def_button "msg_button1",5 ,3,15,"","  OK  "
  560.     def_button "msg_button2",21,3,15,"","  Abbruch "
  561.     def_prompt "msg_pr",5,0,text
  562.     def_string "msg_in",5,1,laenge,ausgabe ;"border"
  563.     
  564.     add_item "msg",..
  565.     "msg_border",..
  566.     "msg_titel",..
  567.     "msg_pr",..
  568.     "msg_in",..
  569.     "msg_button1",..
  570.     "msg_button2"
  571.     
  572.     
  573.     win_paint "msg"
  574.     while y<>1000
  575.       win_ev y
  576.       get_item_pos meier,t
  577.       if t=13 then
  578.             if meier="msg_button1" then
  579.               y=1000
  580.               get_item "msg_in",ausgabe
  581.             endif
  582.             if meier="msg_button2" then
  583.               y=1000
  584.               ausgabe=""
  585.             endif
  586.       endif
  587.     wend
  588.     
  589.     event_on_item "msg","end"
  590.     
  591.   endmod
  592.   
  593.   
  594.   modul such_box(char ueber,char text,char ausgabe,float laenge)
  595.     
  596.     deffloat y,t,ok
  597.     defstring meier
  598.     
  599.     def_window "such",10,5, 45,12;"modal","move off"
  600.     def_border "such_border"
  601.     def_titel  "such_titel",ueber
  602.     def_button "such_button1",5 ,9,15,""," &OK  "
  603.     def_button "such_button2",21,9,15,""," &Abbruch "
  604.     def_prompt "such_pr",5,0,text
  605.     def_string "such_in",5,1,laenge,ausgabe ;"border","clear"
  606.     def_group  "such_group",5,3,35,5,"Groß/Kleinschrift";"H8"
  607.     
  608.     def_button "such_radio1",2,1,30,"","unterscheiden";"radio"
  609.     def_button "such_radio2",2,2,30,"","nicht unterscheiden";"radio"
  610.     
  611.     add_item "such_group","such_radio1","such_radio2"
  612.     
  613.     set_item_status "such_radio2",0,"select"
  614.     
  615.     
  616.     add_item "such",..
  617.     "such_border",..
  618.     "such_titel",..
  619.     "such_pr",..
  620.     "such_in",..
  621.     "such_button1",..
  622.     "such_button2",..
  623.     "such_group"
  624.     
  625.     
  626.     
  627.     win_paint "such"
  628.     while y<>1000
  629.       win_ev y
  630.       get_item_pos meier,t
  631.       if t=13 then
  632.             if meier="such_button1" then
  633.               y=1000
  634.               get_item "such_in",ausgabe
  635.             endif
  636.             if meier="such_button2" then
  637.               y=1000
  638.               ausgabe=""
  639.             endif
  640.       endif
  641.     wend
  642.     
  643.     GET_ITEM_STATUS "such_radio1","set",ok
  644.     if ok=1 then
  645.       _case=0
  646.     else
  647.       _case=1
  648.     endif
  649.     
  650.     
  651.     event_on_item "such","end"
  652.     
  653.   endmod
  654.   
  655.   
  656.   
  657.   modul tausch_box(char ausgabe,char ausgabe2)
  658.     deffloat y,t,ok,laenge
  659.     defstring meier
  660.     
  661.     laenge=35
  662.     
  663.     def_window "tausch",10,5, 45,14;"modal","move off"
  664.     def_border "tausch_border"
  665.     def_titel  "tausch_titel","Tausche"
  666.     def_button "tausch_button1",5 ,11,15,""," &OK  "
  667.     def_button "tausch_button2",21,11,15,""," &Abbruch "
  668.     def_prompt "tausch_pr",5,0,"Suchtext:"
  669.     def_string "tausch_in",5,1,laenge,ausgabe ;"border"
  670.     
  671.     def_prompt "tausch_pr2",5,2,"Ersetzen durch:"
  672.     def_string "tausch_in2",5,3,laenge,ausgabe2 ;"border"
  673.     
  674.     
  675.     def_group  "tausch_group",5,5,35,4,"Groß/Kleinschrift";"H8"
  676.     
  677.     def_button "tausch_radio1",2,1,30,"","unterscheiden";"radio"
  678.     def_button "tausch_radio2",2,2,30,"","nicht unterscheiden";"radio"
  679.     
  680.     add_item "tausch_group","tausch_radio1","tausch_radio2"
  681.     
  682.     set_item_status "tausch_radio2",0,"select"
  683.     
  684.     add_item "tausch",..
  685.     "tausch_border",..
  686.     "tausch_titel",..
  687.     "tausch_pr",..
  688.     "tausch_in",..
  689.     "tausch_pr2",..
  690.     "tausch_in2",..
  691.     "tausch_button1",..
  692.     "tausch_button2",..
  693.     "tausch_group"
  694.     
  695.     
  696.     
  697.     win_paint "tausch"
  698.     while y<>1000
  699.       win_ev y
  700.       get_item_pos meier,t
  701.       if t=13 then
  702.             if meier="tausch_button1" then
  703.               y=1000
  704.               get_item "tausch_in",ausgabe
  705.               get_item "tausch_in2",ausgabe2
  706.             endif
  707.             if meier="tausch_button2" then
  708.               y=1000
  709.               ausgabe=""
  710.               ausgabe2=""
  711.             endif
  712.       endif
  713.     wend
  714.     
  715.     GET_ITEM_STATUS "tausch_radio1","set",ok
  716.     if ok=1 then
  717.       _case=0
  718.     else
  719.       _case=1
  720.     endif
  721.     
  722.     event_on_item "tausch","end"
  723.     
  724.   endmod
  725.   
  726.   
  727.   
  728.   modul pfad_box()
  729.     deffloat y,t,ok,laenge
  730.     defstring meier,zeichen
  731.     
  732.     laenge=35
  733.     
  734.     def_window "pfad",10,5, 45,14;"modal","move off"
  735.     def_border "pfad_border"
  736.     def_titel  "pfad_titel","Pfadeinstellungen"
  737.     def_button "pfad_button1",5 ,11,15,""," &OK  "
  738.     def_button "pfad_button2",21,11,15,""," &Abbruch "
  739.     def_prompt "pfad_pr",5,0,"Pfad + KIM Interpreter"
  740.     def_string "pfad_in",5,1,laenge,_pfad_kim ;"border"
  741.     
  742.     def_prompt "pfad_pr2",5,2,"Pfad + KIM Maskengenerator"
  743.     def_string "pfad_in2",5,3,laenge,_pfad_kmask ;"border"
  744.   
  745.     def_prompt "pfad_pr3",5,4,"Arbeitsverzeichnis"
  746.     def_string "pfad_in3",5,5,laenge,_pfad_arbeit ;"border"
  747.     
  748.     
  749.     add_item "pfad",..
  750.     "pfad_border",..
  751.     "pfad_titel",..
  752.     "pfad_pr",..
  753.     "pfad_in",..
  754.     "pfad_pr2",..
  755.     "pfad_in2",..
  756.     "pfad_pr3",..
  757.     "pfad_in3",..
  758.     "pfad_button1",..
  759.     "pfad_button2"
  760.     
  761.     
  762.     
  763.     win_paint "pfad"
  764.     while y<>1000
  765.       win_ev y
  766.       get_item_pos meier,t
  767.       if t=13 then
  768.             if meier="pfad_button1" then
  769.               y=1000
  770.               get_item "pfad_in",_pfad_kim
  771.               get_item "pfad_in2",_pfad_kmask
  772.               get_item "pfad_in3",_pfad_arbeit
  773.             endif
  774.             if meier="pfad_button2" then
  775.               y=1000
  776.             endif
  777.       endif
  778.     wend
  779.     
  780.     kill _conf_datei
  781.     open 2,_conf_datei
  782.     puts 2,_pfad_kim
  783.     puts 2,_pfad_kmask
  784.     puts 2,_pfad_arbeit
  785.     for t=1 to 5
  786.       puts 2,_load_datei[t]
  787.     next
  788.     close 2
  789.     
  790.     
  791.     event_on_item "pfad","end"
  792.     rem Wechseln in das Arbeitsverzeichnis
  793.     mid _pfad_arbeit,zeichen,2,1
  794.     if zeichen=":" then
  795.       mid _pfad_arbeit,zeichen,1,1
  796.       ucase zeichen
  797.       asc zeichen,t
  798.       t=t-64
  799.       setdrive t,y
  800.     endif    
  801.     chdir _pfad_arbeit,t
  802.  
  803.     
  804.   endmod
  805.   
  806.   
  807.   modul label()
  808.     defstring zeile,id$,zahl$
  809.     deffloat a,i,pos,ok
  810.     
  811.     call label_fenster()
  812.     
  813.     set_item "pr3","Labeltabelle wird geladen ..."
  814.     get_item "text",test1
  815.     a=-1
  816.     search_mle "text","modul ",1,1,0,zeile,a
  817.     
  818.     pos=a
  819.     i=0
  820.     while a<>-1
  821.       
  822.           i=i+1
  823.           form i,zahl$,0,1
  824.           id$="la"+zahl$
  825.           def_string id$,0,i,45,zeile
  826.           add_item "label_box",id$
  827.           a=-1
  828.           search_mle "text","modul ",1,1,pos,zeile,a
  829.           pos=a
  830.     wend
  831.     
  832.     set_item "pr3",""
  833.     win_paint "label_window"
  834.     call label_auswahl(zeile)
  835.     
  836.     if zeile<>"" then
  837.           event_on_item "text","select"
  838.           event_on_item "text","current"
  839.           _suchtext=zeile
  840.           a=0
  841.           search_mle "text",_suchtext,1,1,0,zeile,a
  842.     endif
  843.     
  844.   endmod
  845.   
  846.   
  847.   
  848.   MODUL label_fenster()
  849.     
  850.     DEF_WINDOW_ST "label_window",2,2,50,15,"Labeltabelle";"modal","move off"
  851.     DEF_LIST   "label_box",0, 2,1,45,10,0,0;"border","sort"
  852.     def_scrollbar "label_scroll",1,0,0,0,0
  853.     DEF_BUTTON "label_button1",15,12,12,""," &Abbruch "
  854.     
  855.     add_item "label_box","label_scroll"
  856.     
  857.     ADD_ITEM "label_window",..
  858.     "label_box",..
  859.     "label_button1"
  860.     
  861.     
  862.   ENDMOD
  863.   
  864.   modul label_auswahl(char label)
  865.     
  866.     deffloat i,taste,a,b
  867.     deffloat _zahl
  868.     defstring id,zeichen,text
  869.     
  870.     while i<>1000
  871.       win_ev i
  872.       get_item_pos id,taste
  873.       
  874.       if taste=13 then
  875.         
  876.         if id="label_button1" then
  877.           label=""
  878.           i=1000
  879.         else
  880.           mid id,zeichen,1,2
  881.           if zeichen="la" then
  882.                 get_item id,label
  883.                 i=1000
  884.           endif
  885.         endif
  886.       endif
  887.     wend
  888.     
  889.     event_on_item "label_window","end"
  890.     
  891.   endmod
  892.   
  893.   modul datei_veraendert(float ok)
  894.     
  895.     deffloat a
  896.     
  897.     get_item_status "text","changed",a
  898.     if a<>-1 then
  899.           msgbox "Datei wurde verändert ! Sichern ?",2,ok,""
  900.           rem msgbox "Datei wurde verändert. Speichern ?",2,ok,""
  901.           if ok=1 then
  902.             set_item "pr3","Datei wird gesichert..."
  903.             get_item "text",test1
  904.             savememo _dateiname,test1,a
  905.             if a<>1 then
  906.                 set_item "pr3","Diese Datei wurde nicht korrekt gesichert !"
  907.                 ok=3
  908.             else
  909.                 set_item "pr3",""
  910.                 set_item_status "text",1,"changed"
  911.             endif
  912.           endif
  913.     endif
  914.     
  915.     
  916.     
  917.   endmod
  918.   
  919.  
  920. modul p_start_select()
  921.   deffloat i,a,ok
  922.   defstring text,zeile,zeichen
  923.    
  924.   rem Zuerst prüfen ob Datei sich verändert hat
  925.   call datei_veraendert(a)
  926.   if a<>3 or a=-1 then
  927.           get_item "pr3",text
  928.            set_item "pr3","Programm wird gestartet ..."
  929.            rem Verzeichnis wechseln
  930.            zeile=_dateiname
  931.            len zeile,a
  932.            for i=1 to a
  933.              mid zeile,zeichen,i,1
  934.              if zeichen="\" then ok=i : endif
  935.            next
  936.            if ok>1 then
  937.              mid zeile,zeile,1,ok-1
  938.            endif
  939.            chdir zeile,a
  940.            shell _pfad_kim,"",_dateiname
  941.            set_item "pr3",text
  942.         
  943.     endif
  944.  
  945. endmod
  946.   
  947. modul p_tabelle_select()
  948.  
  949.       call label()
  950. endmod  
  951.   
  952.   
  953. rem ******************** Programm Ende **********************   
  954.  
  955.  
  956.