home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: InfoMgt / InfoMgt.zip / kim21.zip / READ.ME < prev    next >
Text File  |  1996-07-15  |  28KB  |  862 lines

  1. ------------------------------------------------------------------------------
  2. KIM 2.1 UPDATE INFO
  3. ------------------------------------------------------------------------------
  4.  
  5. Allgemeine Anmerkungen
  6. ----------------------
  7. Hier finden Sie Sie die letzten Änderungen und die zusätzlichen Befehle
  8. der KIM Version 2.1.
  9.  
  10. Registrierung schriftlich oder Fax an
  11. -------------------------------------
  12.  
  13. EDV-Büro Kohlenbach
  14. 90459 Nürnberg
  15. Anne-Frankstr. 42
  16.  
  17. Tel. 0911 / 430 512 8  Support 9-13 Uhr
  18. Fax. 0911 / 430 512 9
  19.  
  20. KIM-Mailbox    : 0911  / 430 512 7  !!! Sysop : Jürgen Kohlenbach
  21.  
  22.  
  23. NUR REGISTRIERTE KUNDEN ERHALTEN UPDATES UND SUPPORT !!!!
  24.  
  25. Korrekturen im Handbuch
  26. -----------------------
  27.  
  28. <Fehler im Handbuch s.353>
  29. Die Syntax von SET_ITEM_STATUS,muß wie auf Seite 90 beschrieben,lauten.
  30.  
  31. <Änderung zum Handbuch s.171/172>
  32. Statt BITMAP   ->   DEF_BITMAP
  33. Syntax : DEF_BITMAP id_string,x,y,xr,yr,"Name"
  34. "Name" muß aus einer DAT-Datei stammen die vorher geladen wurde.
  35.  
  36. ------------------------------------------------------------------------------
  37. <DOS>
  38. Schalten in den DOS-Textmode
  39.  
  40. Kommandozeile : KIM datei t
  41.  
  42. Applikation läuft im Textmode DOS !
  43.  
  44. ------------------------------------------------------------------------------
  45. (ALL) <Neu>
  46.  
  47. Bei der Definition der Index und Datenbankstruktur gab es Probleme
  48. bei der Übergabe der Parameter mit dem Trennzeichen KOMMA.
  49. Definiert man die Steuervariable _ICREATE_SEP mit DEFSTRING, so
  50. wird das erste Zeichen als Trennzeichen genutzt.
  51.  
  52. Beispiel :
  53.  
  54. index1="kunde_tag, SUBSTR(NAME,1,2) , , 0,0"
  55.  
  56. Die Kommas der Funktion werden von KIM falsch interpretiert.
  57. ( Zuviele Kommas ! )
  58.  
  59. also :
  60.  
  61. DEFSTRING _ICREATE_SEP
  62.  
  63. ICREATE_SEP =";"
  64.  
  65. index1="kunde_tag; SUBSTR(NAME,1,2) ; ; 0;0"
  66.  
  67. Wichtig ! Sowohl Feld als auch Indexdefinitionen müssen mit den
  68. entsprechenden Trennzeichen getrennt werden.
  69.  
  70. ------------------------------------------------------------------------------
  71. (OS2) <Neu>
  72. Suchen und Positionieren im DEF_TEXT Objekt :
  73.  
  74. SEARCH_MLE id$,suchtext$,mark,case,start,zeile$,pos
  75.  
  76. id$         ID eines DEF_TEXT Objekts
  77. suchtext$   Text der gesucht wird
  78. mark        0 = gefundenen Text markieren
  79.             1 = Text nicht markieren
  80. case        0 = Groß/Kleinschreibung beachten
  81.             1 = nicht beachten
  82. start      -1 = aktuelle Cursorposition, sonst Cursorposition
  83. zeile$      Aktuelle Zeile nach Suche
  84. pos         Aktuelle Position nach Suche
  85.             wird -1 übergeben vor Suchbeginn, dann erfolgt
  86.             nur eine Suche ohne jeweilige Textpositionierung
  87.  
  88. ------------------------------------------------------------------------------
  89. (OS2) <Neu>
  90. Nachrichten an Kontrollelemente : (SYSTEMNAHE PROGRAMMIERUNG)
  91.  
  92. WINSENTMSG id$,MessageID,param1,param2,rueck
  93.  
  94. Alle Funktionen unter OS/2 werden über Nachrichten gesteuert.
  95. Mit diesem Befehl besteht die Möglichkeit eine Nachricht an ein
  96. Objekt zu schicken.
  97.  
  98. id$        Objekt-ID$
  99. MessageID    Beispiel : MLM_SETBACKCOLOR  = 468
  100. param1/param2    Parameter, können Zahlen oder Strings sein.
  101.         Bei Zahlen sollte man den Wert in einer Variablen
  102.         übergeben, wenn er negativ ist z.b -1
  103. rueck        Rückgabewert
  104.  
  105. Verschiedene Nachrichten liefern als Rückgabewert, Zeiger auf
  106. Stringfelder. So ein Rückgabetyp kann noch nicht verarbeitet werden.
  107. Wichtig ! Nachrichten können nur empfangen werden, wenn das
  108. Objekt am Bildschirm ist (also über WIN_PAINT)
  109. ------------------------------------------------------------------------------
  110.  
  111. (ALL) <Neu>
  112. Bei dem Befehl MSGBOX, gibt es nun auch die Möglichkeit 3 Buttons
  113. anzuzeigen : OK / WEITER / ABBRUCH.
  114. Dies realisieren Sie mit flag=2 . Siehe Handbuch s.340
  115.  
  116. ------------------------------------------------------------------------------
  117. (ALL) <Neu>
  118. GET_ITEM_ARRAY id_string$,array$,start,ende
  119.  
  120. Aus einer Gruppe von Objekten wird der Inhalt ausgelesen.
  121. Syntax entspricht der Funktion SET_ITEM_ARRAY
  122.  
  123. Beispiel :
  124.  
  125. dim test,1,3
  126. def_string "st1",..
  127. def_string "st2",..
  128. def_string "st3",..
  129. get_item_array "st",test,1,3
  130.  
  131.  
  132. ------------------------------------------------------------------------------
  133. (ALL)
  134. Bei EVENT_ON_ITEM gibt es folgende neue FLAGS :
  135. "maximize"   Fenster wird auf maximale Größe dargestellt
  136. "minimize"   Fenster wird in Symbolgröße verkleinert
  137. "create"     Objekt wird neu erstellt ( bei Listboxen, Slider und Comboboxen )
  138.  
  139. ------------------------------------------------------------------------------
  140.  
  141. (ALL) <Neu>
  142. DEF_NUMBER id$,x,y,len,vorgabe$,range$;flags
  143.  
  144. Eingabe eines numerischen Werts.
  145. Die <flags> entsprechenen denen von DEF_STRING.
  146.  
  147. Weitere Flags :
  148. commas        Es werden Kommas und Punkt für Trennung
  149.         von Dezimal und Tausender-Stellen verwendet
  150.         (Verwendung wie Einstellung des Systems)
  151.  
  152. currency        Währungssymbol wird mit angezeigt.
  153.  
  154. decimal x       x=0..6 Anzahl der Nachkommastellen
  155.  
  156. percent         Zeigt Zahl mit Prozentzeichen
  157.  
  158. scientific      Zeigt Zahl in wissenschaftlicher Form (z.B. 10 E+10)
  159.  
  160.  
  161. Beispiel : Zahleneingabe rechtsbündig,zwei Stellen nach dem Komma und
  162.            Möglichkeit Feldinhalt zu überschreiben.
  163.  
  164. DEF_NUMBER "num1",2,2,10,"200.50","100..3000";"decimal 2","right","clear"
  165.  
  166.  
  167. ------------------------------------------------------------------------------
  168.  
  169. (ALL) <Änderung>
  170.  
  171. DEF_STRING "id",x,y,len,text$ [,focuslänge] ; ...
  172.  
  173. focuslänge muß <= len sein
  174.  
  175. Die Focuslänge ist die Länge der sichtbaren Eingabezone.
  176. <len> gibt an wieviele Zeichen eingegeben werden dürfen.
  177. Ist len > focuslänge dann wird im Eingabefenster gescrollt.
  178.  
  179. ------------------------------------------------------------------------------
  180.  
  181. (ALL) <Änderung>
  182.  
  183. Bei den aufgeführten Datenbankbefehlen kann (muß nicht) ein weiterer numerischer
  184. Parameter (Variable) mit angegeben werden.
  185.  
  186. Beispiel : IOPEN 1,"test" [,fehlercode]
  187.  
  188. Tritt ein Fehler auf, so kann der Fehlercode ermittelt werden.
  189. KIM öffnet dann keine Fehlerbox.
  190. Gehen Sie vorsichtig hiermit um !
  191.  
  192. Befehle :
  193. ISTART, IENDE, IOPEN, INEXT, IPREV, IMAKEINDEX, IOPEN_INDEX,
  194. ICLOSE_INDEX, IREINDEX, ICREATE, ILOCK, IULOCK, ISET, IREAD,
  195. ICLOSE, IGO_NR
  196.  
  197. ------------------------------------------------------------------------------
  198. F E H L E R C O D E S
  199.  
  200. Code         Fehler
  201. -----------------------------------------------------------------------------
  202. Allgemein...
  203. -10  Fehler beim schließen einer Datei
  204. -20  Fehler beim Erstellen einer Datei (Dateiname,Platte voll,..)
  205. -30  Fehler beim bestimmen der Dateilänge
  206. -40  Fehler beim Einstellen der Dateilänge
  207. -50  Fehler beim Sperren einer Datei
  208. -60  Fehler beim Öffnen einer Datei (nicht vorh.,..)
  209. -70  Fehler beim lesen in einer Datei
  210. -80  Fehler beim Löschen
  211. -90  Fehler beim Umbenennen
  212. -100 Fehler beim Positionieren des Dateizeigers
  213. -110 Fehler beim Entsprerren einer Datei
  214. -120 Platte voll beim schreiben in eine Datei
  215. -200 Datei ist keine Datendatei
  216. -210 Unbekannter Feldname
  217. -220 Unbekannter Feldtyp
  218. -230 Datensatzlänge zu groß
  219.  
  220. Index...
  221. -300 Subindex fehlt (Datensatz hat keinen Eintrag im Index)
  222. -310 Keine richtige Indexdatei
  223. -330 Subindex nicht gefunden (Name nicht gefunden)
  224. -340 Kein eindeutiger Schlüssel
  225.  
  226. Ausdrücke...
  227. -400 Komma oder Klammer erwartet
  228. -410 Ausdruck nicht vollständig
  229. -420 Name der Datendatei nicht ermittelt
  230. -422 IIF() erfordert Parameter von gleicher Länge
  231. -425 SUBSTR() und STR() erfordert Konstanten als Parameter
  232. -430 Anzahl der Parameter sind falsch
  233. -440 Überlauf bei der Auswertung eines Ausdrucks
  234. -450 Rechte Klammer fehlt
  235. -460 Typ der Unterausdrucks ist falsch
  236. -470 Unbekannte Funktion
  237. -480 Unbekannter Operator
  238. -490 Unbekannter Wert
  239. -500 Unbeendeter String
  240.  
  241. Optimierungsfehler ...
  242. -610 Allgemeiner Optimierungsfehler
  243. -620 Fehler bei der Aufhebung der Opt.
  244. -630 Fehler beim Herausschreiben der Datei
  245.  
  246. Relationen...
  247. -710 Allgemeiner Relationsfehler
  248. -720 Übereinstimmender Slave-Datensatz nicht gefunden
  249.  
  250. Schwere Fehler...
  251. -910 Interner Fehler
  252. -920 Nicht genug Speicher
  253. -930 Unerwarteter Parameter
  254. -950 Unerwartetes Ergebnis
  255.  
  256. R Ü C K M E L D U N G E N
  257. -------------------------
  258.  
  259. 0 Aufruf erfolgreich
  260. 1 Suchschlüssel gefunden
  261. 2 Suchaufruf nicht erfolgreich, Positionierung erfolgt
  262.   hinter den abgefragten Suchschlüssel.
  263. 3 Dateiende
  264. 4 Dateianfang
  265. 5 Datensatz oder Subindexschlüssel fehlt
  266. 10 Index in absteigender Reihenfolge sortiert
  267. 20 Subindex nur eindeutigen Schlüssel und es wurde
  268.    versucht einen gleichen Key anzufügen.
  269. 40 Datensatz wird ignoriert
  270. 45 Datensatz wird beibehalten
  271. 50 Teil der Datendatei gesperrt
  272. 60 Datei konnte nicht angelegt werden
  273. 70 Datei konnte nicht geöffnet werden
  274. 80 Subindexname nicht gefunden
  275. 90 Slave-Datensatz wurde nicht gefunden
  276.  
  277. ------------------------------------------------------------------------------
  278.  
  279. (OS2) <Neu>
  280. Befehle für Cliboard-Nutzung
  281.  
  282. SETCLIP var$
  283. GETCLIP var$
  284.  
  285. SETCLIP schreibt den Inhalt von var$ in das Clipboard
  286. GETCLIP liest den Inhalt des Clipboards
  287.  
  288. Für das Lesen des Clipboardinhalts sollten Sie eine Memovariable benutzen,
  289. da andere Variablen auf 255 Zeichen beschränkt sind !
  290.  
  291.  
  292. ------------------------------------------------------------------------------
  293. (ALL) <Änderung>
  294.  
  295. SET_KEYMAP key$,rückgabenr,pos
  296.  
  297. Es können nun statt 10 Keys, 25 Keys definiert werden (OS2/DOS)
  298.  
  299. ------------------------------------------------------------------------------
  300. (ALL) <Neu>
  301.  
  302. ISKIP dbnr, anzahl
  303.  
  304. Bewegt den Datenbankzeiger bei einen positiven Wert um <anzahl> vorwärts
  305. in der Datenbank oder bei einen negativen Wert um <Anzahl> zurück in
  306. der Datenbank. Werden dabei die Datenbankgrenzen (Anfang,Ende) überschritten,
  307. wird der Datenbankzeiger entsprechend auf den Anfang oder das Ende gesetzt.
  308.  
  309. ------------------------------------------------------------------------------
  310. (ALL) <Neu>
  311.  
  312. ISOMAP wert
  313.  
  314. wert   =   0     Iso-Zeichensatz mapping wird nicht durchgeführt
  315. wert   =   1     Iso-Zeichensatz mapping wird durchgeführt
  316.  
  317. Betrifft alle anzeigen von Umlauten
  318.  
  319. ------------------------------------------------------------------------------
  320. (ALL) <Änderung>
  321.  
  322. IN-Befehl gibt nun korrekt Position in einer Zeichenkette wieder
  323. ------------------------------------------------------------------------------
  324.  
  325. (ALL) <Neu>
  326.  
  327. SQRT zahl,erg
  328.  
  329. Gibt Wurzel aus Zahl zurück
  330. ------------------------------------------------------------------------------
  331. (ALL) <Neu>
  332.  
  333. ADD_ITEM_ARRAY "obj","objB",von,bis
  334.  
  335. Ein Array von Objekten : objBvon,...objBbis werden an das Objekt obj
  336. addiert.
  337. ------------------------------------------------------------------------------
  338. (ALL) <Änderung>
  339. DATUM date,flag oder
  340. DATUM date
  341.  
  342. flag =  3      TT.MM.YYYY
  343.         2
  344.         1
  345. ------------------------------------------------------------------------------
  346. (ALL) <Änderung>
  347.  
  348. IMPORT datei$
  349.  
  350. funktioniert nun unter KIM 2.x
  351.  
  352. ------------------------------------------------------------------------------
  353. (ALL) <Änderung>
  354.  
  355. Das Mapping der Zeichensätze für Datenbank und Bildschirmausgabe funktioniert
  356. nun automatisch.
  357. D.h. In einer Dbase-Datenbank werden nicht ANSI-Zeichen sondern der
  358. normale OEM Zeichensatz genutzt.
  359. Datenbank ist über alle Systeme einheitlich
  360. ------------------------------------------------------------------------------
  361. (ALL) <Änderung>
  362.  
  363. Automatische Konvertierung von Strings in numerische Werte
  364. Beispiel :
  365.  
  366. deffloat a   (Wichtig !!! numerische Variable !!! )
  367. defstring text1,text2
  368. text1="3.5"
  369. text2="10"
  370. a=text1+text2*"2"  --> a =  23.5
  371.  
  372. Dies funktioniert nur dann wenn der linke Ausdruck eine numerische Variable ist.
  373. Ist der linke Ausdruck eine Stringvariable ist nur der Verknüpfungsoperator
  374. "+" möglich. (wie vorher)
  375. ------------------------------------------------------------------------------
  376.  
  377. (ALL) <Neu>
  378.  
  379. Aliasvariablen
  380. --------------
  381. Beispiel :
  382.  
  383. dim test,1,10
  384. defstring text
  385. text="test1"
  386.  
  387. &text&="Hallo Leute"    (das Bedeutet : test1="Hallo Leute")
  388. ------------------------------------------------------------------------------
  389.  
  390. (ALL) <Änderung>
  391. Bei IADD und IMODREC werden Daten nun sofort auf die Platte gesichert.
  392. Indexdateien werden auch auf Platte aktualisiert.
  393. ------------------------------------------------------------------------------
  394. (ALL) <Änderung>
  395. Bei VAL / FORM  Funktion werden Zahlen wie 12,50 in 12.50 gewandelt.
  396. Daten werden in Datenbank immer mit Dezimalpunkt gespeichert.
  397.  
  398. ------------------------------------------------------------------------------
  399. ------------------------------------------------------------------------------
  400. ********************* Neueste KIM 2.1 Befehle ********************************
  401. ------------------------------------------------------------------------------
  402. ------------------------------------------------------------------------------
  403. (ALL) <Neu 2.1>
  404.  
  405. Farben der Prompts (DEF_PROMPT)
  406. -------------------------------
  407. Hier können Sie auf einmal die Farbe aller Prompts in einem Programm
  408. verändern.
  409.  
  410. Für die Forder- und Hintergrundfarbe wird die Palette 9 benutzt.
  411. (def_palette 9,...)
  412.  
  413. Standardeinstellung ist Hintergrund : weiß
  414.                     und Fordergrund : schwarz
  415.  
  416. ------------------------------------------------------------------------------
  417. (ALL) <Neu 2.1>
  418.  
  419. Userfunktionen
  420. --------------
  421.  
  422. Neu in KIM 2.1 sind die sogenannten Userfunktionen.
  423.  
  424. Beispiel der alten Funktionsweise :
  425. Sie haben einen Button definiert und an ein Fensterobjekt addiert.
  426. Drücken Sie den Button, haben Sie bis jetzt über die Funktion
  427. "get_item_pos" festgestellt ob die linke Maustaste oder die ENTER-
  428. Taste gedrückt wurde. Nun musste man noch prüfen welches Objekt
  429. angesprochen wurde und hat dann einen entsprechenden
  430. Programmcode gestartet.
  431. Neu :
  432. Der Userfunktionsname besteht aus dem Namen des Objekts und einen
  433. Ergeignis. ( z.B. "Button1_select()"
  434. Wird z.B. ein Button "Button1" angeklickt, wird die Funktion
  435. Button1_select() aufgerufen.
  436.  
  437. Folgende Ereignisse werden als Userfunktion bereitgestellt :
  438.  
  439. Userfunktion              Ereignis
  440. -------------------------------------------------------------------
  441. Button1_select()       -> Objekt wird angeklickt oder mit ENTER
  442.                           ausgewählt, entspricht  taste=13
  443. Button1_getfocus()     -> Objekt erhält den Fokus
  444. Button1_lostfocus()    -> Objekt verliert den Fokus
  445. Button1_doubleclick()  -> Nur wenn Objekt die Eigenschaft :
  446.                           "double_click" erhält.
  447. Button1_validate()     -> Bei Eingabefehler, z.B. Eingabe außerhalb
  448.                           des gültigen Bereichs.
  449.  
  450. Button1_changed()      -> User hat Feldeintrag geändert
  451.                           // Funktioniert nur bei def_string momentan
  452.  
  453. Die alte Programmierweise kann beibehalten werden.
  454. Eine Userfunktion muß nicht definiert sein. Ist aber für die
  455. Zukunft aber der schnellere Weg.
  456.  
  457. Beispielprogramm für eine Userfunktion :
  458. (.. bedeutet zusätzlicher Code )
  459.  
  460. def_window "window",...
  461. def_button "button1",..
  462. add_item "window","button1"
  463.  
  464. win_paint "window"
  465.  
  466. while i<>1000
  467.  win_ev i
  468. wend
  469.  
  470. end
  471.  
  472. rem ****************************************
  473. rem Eventfunktionen
  474. rem ****************************************
  475.  
  476. modul button1_select()
  477.  
  478. rem Wenn Button gedrückt wurde, dann soll ein Ton erklingen
  479.  
  480. beep
  481.  
  482. endmod
  483.  
  484. ------------------------------------------------------------------------------
  485. (ALL) <Neu 2.1>
  486.  
  487. Tastaturevents
  488. --------------
  489.  
  490. Eventfunktion um die Tastatureingaben abzufangen :
  491. Vorher muß die entsprechende Taste mit SET_KEYMAP definiert sein.
  492.  
  493. MODUL SYSTEM_KEYPRESS()
  494.  
  495.  if system.keypress=10005 then
  496.    beep
  497.  endif
  498.  
  499. ENDMOD
  500.  
  501. Innerhalb der Funktion SYSTEM_KEYPRESS wird ein logischer
  502. Tastenevent an die Variable <system.keypress> übergeben.
  503. Diese Variable muß nicht deklariert werden.
  504. Dies übernimmt KIM.
  505. Die Variable <system.keypress> liefert nur gemappte Tasten zurück !
  506.  
  507.  
  508. ------------------------------------------------------------------------------
  509. (ALL) <Neu 2.1>
  510.  
  511. EVENT_ON_ITEM "id" , "create"
  512.  
  513. Mit diesem Event wird veranlasst, das ein Objekt neu erstellt wird.
  514. Als Beispiel möchte ich die Combo-Box nennen.
  515. Es werden Elemente an das Combo-Box-Objekt addiert und entfernt.
  516. Damit das Objekt aktualisiert wird, kann es über den Event "create"
  517. neu erstellt werden.
  518.  
  519. ------------------------------------------------------------------------------
  520. (ALL) <Neu 2.1>
  521.  
  522. DEF_SCROLLBAR
  523.  
  524. Nun ist es möglich ein Scrollbarobjekt an ein Fenster zu addieren.
  525. Im Fenster kann nun gescrollt werden.
  526. Als Beispielanwendung nenne ich eine Artikelverwaltung die nicht auf
  527. eine Seite passt. Nun muß man nicht mehr über mehrere Fenster arbeiten.
  528.  
  529. ------------------------------------------------------------------------------
  530. (ALL) <Neu 2.1>
  531.  
  532. DEF_STATUSBAR <id> , Höhe
  533.  
  534. Definiert eine Statuszeile am unteren Fensterrand.
  535. An die Statuszeile können folgende Objekte addiert werden :
  536. String-, Datums-, Zeit- und Nummernfelder.
  537. Weiterhin können Buttons und Icons addiert werden.
  538. Die Statuszeile dient als Meldefenster und liefert keine
  539. Rückgabewerte.
  540.  
  541. ------------------------------------------------------------------------------
  542. (ALL) <Neu 2.1>
  543.  
  544. DEF_NOTEBOOK <id>
  545.  
  546. Mit dieser Funktion kann ein Notebook-Objekt definiert werden.
  547. An ein Notebook-Objekt werden Fensterobjekte addiert.
  548. Diese ergeben mit Ihren Überschriften die Notebook-Seiten.
  549. Ein Notebook-Objekt wird dann zum Hauptfenster addiert.
  550.  
  551. Beispiel :
  552.  
  553. def_window "haupt",...
  554. def_notebook "note"
  555. def_window "Seite 1",..
  556. def_window "Seite 2",..
  557. def_window "Seite 3",..
  558.  
  559. Windows an das Notebook addieren ...
  560. add_item "note","Seite 1","Seite 2","Seite 3"
  561.  
  562. Notebook an das Hauptfenster addieren ...
  563. add_item "haupt","note"
  564.  
  565. Ein Notebook-Objekt passt sich in das Hauptfenster ein. Wechseln der
  566. Ordnerseiten erfolgt über die Tastatur mit den Tasten am Zehnerblock :
  567. Bild hoch und Bild runter. Wird die NUM-LOCK Taste eingeschaltet,
  568. werden die Zahlen 9 und 3 wiedergegeben.
  569. Unter Windows darf auf einer Notebookseite kein Pulldownmenü existieren.
  570.  
  571. ------------------------------------------------------------------------------
  572. (ALL) <Neu 2.1>
  573.  
  574. DEF_BITMAP id,x,y,xr,yr,bitmapdateiname
  575.  
  576. Lädt eine Bitmapdatei 16-256 Farben von Disk oder Festplatte und stellt Sie
  577. in einem Fenster dar.
  578.  
  579. id            Objekt-ID$
  580. bitmapdateiname        Bilddatei
  581. x,y,xr,yr        Pixel-Koordinaten im Fenster
  582.  
  583. Beispiel :
  584.  
  585. siehe BITMAP.KIM
  586.  
  587. ------------------------------------------------------------------------------
  588. (ALL) <Änderung 2.1>
  589.  
  590. IGETREC_ARRAY db,flag,trenn,record,var,start,ende,feldx,feldy,.. ;len1,len2,len3
  591.  
  592. Neu :
  593. Nach der Angabe der Felder kann man die Feldformatierung angeben.
  594. Es folgen dann nach einem Strichpunkt die Formatierungslängen der einzelnen
  595. Variablen (Mit Komma getrennt )
  596.  
  597. ------------------------------------------------------------------------------
  598. (ALL) <Änderung 2.1>
  599.  
  600. Pulldownmenüs
  601. -------------
  602.  
  603. Beispiel :                                                        Flag
  604.  
  605.  Datei                                   (def_pulldown_iten)      ,1
  606.    .
  607.  Neu                                     (def_popup_item)         ,0
  608.   .
  609.  Eigenschaften                           (def_pulldown_item)      ,1
  610.        ................ Neutral          (def_popup_item)         ,0
  611.        ................ Allgemein        (def_popup_item)         ,0
  612.  
  613.  
  614. Das Flag bedeutet, es wird eine Userfunktion (flag=0) aufgerufen.
  615. Im oberen Beispiel darf das Objekt "Datei" keine Userfunktion aufrufen,
  616. (flag=1) da sonst die Userfunktionen der Childobjekte "Neu,Eigenschaften..."
  617. deaktiviert werden.
  618. Auf Deutsch : Besitzt ein Pulldown-Menü-Punkt weitere Unterpunkte, dann
  619. erhält dieser das Flag den Wert 1. Die Unterpunkte erhalten den Wert 0,
  620. falls diese nicht wieder Unterpunkte besitzen.
  621.  
  622. ------------------------------------------------------------------------------
  623. (ALL) <Neu 2.1>
  624.  
  625. SUB_ITEM_ARRAY "id","element",von,bis
  626.  
  627. Entfernt ein Array von Elementen von einen Objekt
  628.  
  629. ------------------------------------------------------------------------------
  630. (ALL) <Neu 2.1>
  631.  
  632. SETLANG flag
  633.  
  634. flag=0        (Standard) Bei Zahlenfelder aus Datenbank einer
  635.         Datenbank wird der Punkt in ein Komma gewandelt
  636.         (Deutschland)
  637.  
  638. Flag=1        Punkt bleibt.
  639.  
  640. ------------------------------------------------------------------------------
  641. (ALL) <Neu 2.1>
  642.  
  643. DEF_WINDOW "id",x,y,breite,hoehe [,Iconname,Icontext]
  644.  
  645. Falls ein Fenster auf Symbolgröße verkleinert wird, kann ein
  646. Icon definiert werden. (Gilt auch für DEF_WINDOW_ST )
  647.  
  648. Iconname    Name aus einer DAT-Datei (Load_dat)
  649. Icontext    Text bei Icon im verkleinerten Zustand
  650.  
  651. ------------------------------------------------------------------------------
  652. (ALL) <Neu 2.1>
  653.  
  654. SETFOCUS "id"
  655.  
  656. Objekt "id" erhält den Eingabefokus. (Keine Reihenfolgeänderung
  657. wie bei ADD_ITEM.)
  658.  
  659. ------------------------------------------------------------------------------
  660. (ALL) <Neu 2.1>
  661.  
  662. DESTROY "id"
  663.  
  664. Alle Elemente eines Objekts werden gelöscht.
  665. Beispiel :
  666. Alle Objekte einer Liste werden gelöscht. Dabei ist "id" die
  667. Objekt-ID der Liste.
  668.  
  669. Achtung !
  670. ---------
  671. Wenn Elemente eines Objekts (z.B. Liste) gelöscht werden,
  672. dann können diese Elemente nicht mehr an ein Objekt addiert
  673. werden, ohne das Sie vorher neu deklariert wurden. (DEF_...)
  674. Wird dies trotzdem versucht, erhalten Sie eine Systemfehlermeldung.
  675.  
  676. ------------------------------------------------------------------------------
  677. (ALL) <Neu 2.1>
  678.  
  679. Datumsfunktionen :
  680. ------------------
  681.  
  682. defstring date1,date2
  683. deffloat zeit1,zeit2
  684. deffloat tag
  685.  
  686. rem Beispiel für das verwenden der Datumsfunktionen ...
  687.  
  688. date1="19940402"
  689.  
  690. rem Wandelt CCYYMMTT  ---> Julianische Zahl
  691. datetoju date1,zeit1
  692. zeit1=zeit1+10
  693.  
  694. rem Wandelt Julianische Zahl --->  CCYYMMTT
  695. jutodate zeit1,date1
  696.  
  697. rem Ermittelt Wochentag 1=Sonntag ... 7=Samstag
  698. datetow date1,tag
  699.  
  700. rem Wandelt 10.12.94 --> 19941210
  701. date1="10.12.94"
  702. dateformat 0,"DD.MM.YY",date1,date2
  703.  
  704. rem Wandelt 19941210 ---> 10.12.94
  705. date1="19941210"
  706. dateformat 1,"DD.MM.YY",date1,date2
  707.  
  708. end
  709.  
  710. ------------------------------------------------------------------------------
  711. (ALL) <Neu 2.1>
  712.  
  713. - Max. Programmcode auf 500 KB erhöht
  714. - Anzahl der max. geöffneten Dateien auf 50 FILES gesetzt
  715. - Code optimiert
  716.  
  717. ------------------------------------------------------------------------------
  718. (ALL) <Neu 2.1>
  719.  
  720. Korrektes Rechnen auf zwei Stellen nach dem Komma. Für die Berechnug von
  721. langen Zahlenreihen, ist es nun möglich auf 2 Stellen nach dem Komma
  722. exakte Ergebnisse zu erzielen.
  723.  
  724. CALC "+" , wert$ , wert2$ , ergebnis$
  725. CALC "-" , wert$ , wert2$ , ergebnis$
  726.  
  727. Beispiel :
  728.  
  729. wert$ = "12.45"
  730. wert2$= "15.30"
  731. calc "+",wert$,wert2$,ergebnis$
  732. rem ergebnis$="27.75"
  733.  
  734. ------------------------------------------------------------------------------
  735. (ALL) <Neu 2.1>
  736.  
  737. Es wird ein kleiner Reportgenerator mitgeliefert.
  738. siehe Datei : REPORT.DOC
  739.  
  740. ------------------------------------------------------------------------------
  741. (ALL) <Neu 2.1>
  742.  
  743. GET_COUNT id$,wert
  744.  
  745. Ermittelt die Anzahl der Elemente in einem Fenster, Listbox oder Combobox.
  746. Wird die Funktion auf ein Objekt ohne Listeigenschaft angewendet,
  747. erhält man den Wert -1 als Rückgabe.
  748.  
  749. ------------------------------------------------------------------------------
  750. (ALL) <Neu 2.1>
  751.  
  752. GET_ITEM id$,rueckgabe$ [,index]
  753.  
  754. Nun ist es möglich den Inhalt des n-ten Element einer Listbox oder Combox
  755. zu ermitteln. ( Ab Basis 1 )
  756.  
  757. ------------------------------------------------------------------------------
  758. (ALL) <Neu 2.1>
  759.  
  760. DEF_WINDOW     id$,x,y,xr,yr [,iconname,iconText,ticks]
  761. DEF_WINDOW_ST  id$,x,y,xr,yr [,iconname,iconText,ticks]
  762.  
  763. TIMER-Funktion
  764. --------------
  765. Als Beispiel siehe TIMER.KIM.
  766. Unter KIM ist es nun möglich in einen bestimmten Intervall auf ein
  767. Ereignis zu reagieren. Hierfür wurde der Befehl DEF_WINDOW erweitert.
  768. Als Zeitintervall dient ein Tick. (18.2 Ticks in der Sekunde)
  769.  
  770. ICON-Funktion
  771. -------------
  772. Wenn ein Fenster auf Symbolgröße verkleinert wird, kann man ein Icon aus
  773. einer DAT-Datei angeben. Dieses wird mit dem entsprechenden <iconText>
  774. dargestellt.
  775.  
  776. ------------------------------------------------------------------------------
  777. (ALL) <Neu 2.1> <Längenkorrektur>
  778.  
  779. DEF_PROMPT
  780.  
  781. Es gibt nun die Möglichkeit an einen DEF_PROMPT Ausgabe eine bestimmte
  782. Menge von Leerzeichen anzuhängen.
  783. Definieren Sie die numerische Variable DEF_PROMPT_LEN.
  784. Weisen Sie dieser Variable die Anzahl der Leerzeichen zu.
  785. Der Wert -1 bedeutet, daß die DEF_PROMPT Routine vom Betriebssystem
  786. genutzt wird.
  787.  
  788. ------------------------------------------------------------------------------
  789. (ALL) <Neu 2.1>
  790.  
  791. SET_MOUSE_STATUS x
  792.  
  793. x    = 0      normaler Mauszeiger
  794. x    = 1      Sanduhr , Uhr
  795.  
  796. ------------------------------------------------------------------------------
  797. (ALL) <Neu 2.1>
  798.  
  799. Das Tabellenobjekt
  800. ------------------
  801. An dieser Stelle möchte ich ein paar Worte über das Tabellenobjekt verlieren.
  802. Die Programmierung ist einfach, wenn man einmal die Funktionsweise des T.O.
  803. verstanden hat. Als Beispiel dient das Programm : TABLE.KIM.
  804. Momentan kann nur eine Tabelle pro Programm definiert werden.
  805. In einer Reihe können maximal 50 Spaltenelemente definiert werden.
  806. Die Anzahl der Reihen ist von ihrer Vorgabe abhängig.
  807. Für den Indexwert dient die Basis 0. (Rückgabewerte werden 0,1,2... gezählt)
  808.  
  809. Bei der Deklaration eines T.Os , geben Sie als Parameter einen
  810. Array-Namen an. Diese Array muß vorher mit DIM definiert sein. Ein Arrayelement
  811. (z.B. _arr4 ) entspricht einer Zeile in der Tabelle. Eine Tabellenzeile besteht
  812. aus eins oder mehreren Eingabefeldern. Die Aufteilung des Inhalts eines
  813. Arrayelements auf die einzelnenen Felder einer Zeile erfolgt über ein
  814. Trennzeichen. Dieses Trennzeichen geben Sie bei der Tabellendefinition mit an.
  815.  
  816. Aufbau einer Tabelle :
  817.  
  818.   DEF_TABLE      (Definition der Tabellengrunddaten)
  819.  
  820.   DEF_HEADER     (Definition einer Kopfzeile für Spaltenüberschriften)
  821.  
  822.   DEF_PROMPT     (Defintion der einzelnen Spaltenüberschriften)
  823.   DEF_PROMPT     ...
  824.  
  825.   ADD_ITEM   "HEADER","PROMPTS"  (Anfügen der Überschriften an die Kopfzeile)
  826.   ADD_ITEM   "TABLE","HEADER"    (Anfügen der Kopfzeile an das Tabellenobjekt)
  827.  
  828.   DEF_TABLE_REC  (Defintion einer Tabellenzeile)
  829.   DEF_STRING     (Definition von Eingabefelder in der Tabellenzeile)
  830.   DEF_NUMBER      ...
  831.  
  832.   ADD_ITEM "TABLE_REC","STRING","NUMBER,... (Anfügen der Eingabefelder an die
  833.                                              Tabellenzeile )
  834.   ADD_ITEM "TABLE","TABLE_REC"   (Anfügen Tabellenzeile an das Tabellenobjekt)
  835.  
  836.   ADD_ITEM "WINDOW","TABLE"      (Anfügen Tabellenobjekt an das Fenster)
  837.  
  838.  
  839. Syntaxbeschreibungen :
  840.  
  841. DEF_TABLE "id",x,y,breite,hoehe,anzahl_felder,groesse,anzahl_vorbelegt,
  842.           array_structur,trennzeichen [;flags]
  843.  
  844. "id"                          Object ID
  845. x,y,breite,hoehe              Größe der Tabelle
  846. anzahl_felder                 Anzahl der Felder in einer Tabellenzeile
  847. groesse                       Anzahl der max. Bytes einer Tabellenzeile
  848. anzahl_vorbelegt              Anzahl der Zeilen in der Tabelle, die beim
  849.                               ersten Darstellen gezeigt werden.
  850. array_structur                Name des Arrays (Abbild der Tabelle)
  851. trennzeichen                  Wert zwischen (0-255)
  852. [;flags]                      Allgememeine Flags wie "region off","border",..
  853.  
  854. DEF_HEADER "id"                     Definition einer Kopfzeile
  855. DEF_TABLE_REC "id",breite,hoehe     Defintion eines Zeilenobjekts
  856. GET_TABLE_COUNT "id",anzahl         Ermittlung der sichtbaren Tabellenzeilen
  857. GET_TABLE_RECNR "id",position       Ermittlung der aktuellen Position
  858. SET_TABLE_RECNR "id",position       Setzen der aktuellen Position
  859. ADD_TABLE_REC "id"                  Anfügen einer neuen Tabellenzeile
  860.  
  861. ------------------------------------------------------------------------------
  862.