home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: InfoMgt
/
InfoMgt.zip
/
kim21.zip
/
READ.ME
< prev
next >
Wrap
Text File
|
1996-07-15
|
28KB
|
862 lines
------------------------------------------------------------------------------
KIM 2.1 UPDATE INFO
------------------------------------------------------------------------------
Allgemeine Anmerkungen
----------------------
Hier finden Sie Sie die letzten Änderungen und die zusätzlichen Befehle
der KIM Version 2.1.
Registrierung schriftlich oder Fax an
-------------------------------------
EDV-Büro Kohlenbach
90459 Nürnberg
Anne-Frankstr. 42
Tel. 0911 / 430 512 8 Support 9-13 Uhr
Fax. 0911 / 430 512 9
KIM-Mailbox : 0911 / 430 512 7 !!! Sysop : Jürgen Kohlenbach
NUR REGISTRIERTE KUNDEN ERHALTEN UPDATES UND SUPPORT !!!!
Korrekturen im Handbuch
-----------------------
<Fehler im Handbuch s.353>
Die Syntax von SET_ITEM_STATUS,muß wie auf Seite 90 beschrieben,lauten.
<Änderung zum Handbuch s.171/172>
Statt BITMAP -> DEF_BITMAP
Syntax : DEF_BITMAP id_string,x,y,xr,yr,"Name"
"Name" muß aus einer DAT-Datei stammen die vorher geladen wurde.
------------------------------------------------------------------------------
<DOS>
Schalten in den DOS-Textmode
Kommandozeile : KIM datei t
Applikation läuft im Textmode DOS !
------------------------------------------------------------------------------
(ALL) <Neu>
Bei der Definition der Index und Datenbankstruktur gab es Probleme
bei der Übergabe der Parameter mit dem Trennzeichen KOMMA.
Definiert man die Steuervariable _ICREATE_SEP mit DEFSTRING, so
wird das erste Zeichen als Trennzeichen genutzt.
Beispiel :
index1="kunde_tag, SUBSTR(NAME,1,2) , , 0,0"
Die Kommas der Funktion werden von KIM falsch interpretiert.
( Zuviele Kommas ! )
also :
DEFSTRING _ICREATE_SEP
ICREATE_SEP =";"
index1="kunde_tag; SUBSTR(NAME,1,2) ; ; 0;0"
Wichtig ! Sowohl Feld als auch Indexdefinitionen müssen mit den
entsprechenden Trennzeichen getrennt werden.
------------------------------------------------------------------------------
(OS2) <Neu>
Suchen und Positionieren im DEF_TEXT Objekt :
SEARCH_MLE id$,suchtext$,mark,case,start,zeile$,pos
id$ ID eines DEF_TEXT Objekts
suchtext$ Text der gesucht wird
mark 0 = gefundenen Text markieren
1 = Text nicht markieren
case 0 = Groß/Kleinschreibung beachten
1 = nicht beachten
start -1 = aktuelle Cursorposition, sonst Cursorposition
zeile$ Aktuelle Zeile nach Suche
pos Aktuelle Position nach Suche
wird -1 übergeben vor Suchbeginn, dann erfolgt
nur eine Suche ohne jeweilige Textpositionierung
------------------------------------------------------------------------------
(OS2) <Neu>
Nachrichten an Kontrollelemente : (SYSTEMNAHE PROGRAMMIERUNG)
WINSENTMSG id$,MessageID,param1,param2,rueck
Alle Funktionen unter OS/2 werden über Nachrichten gesteuert.
Mit diesem Befehl besteht die Möglichkeit eine Nachricht an ein
Objekt zu schicken.
id$ Objekt-ID$
MessageID Beispiel : MLM_SETBACKCOLOR = 468
param1/param2 Parameter, können Zahlen oder Strings sein.
Bei Zahlen sollte man den Wert in einer Variablen
übergeben, wenn er negativ ist z.b -1
rueck Rückgabewert
Verschiedene Nachrichten liefern als Rückgabewert, Zeiger auf
Stringfelder. So ein Rückgabetyp kann noch nicht verarbeitet werden.
Wichtig ! Nachrichten können nur empfangen werden, wenn das
Objekt am Bildschirm ist (also über WIN_PAINT)
------------------------------------------------------------------------------
(ALL) <Neu>
Bei dem Befehl MSGBOX, gibt es nun auch die Möglichkeit 3 Buttons
anzuzeigen : OK / WEITER / ABBRUCH.
Dies realisieren Sie mit flag=2 . Siehe Handbuch s.340
------------------------------------------------------------------------------
(ALL) <Neu>
GET_ITEM_ARRAY id_string$,array$,start,ende
Aus einer Gruppe von Objekten wird der Inhalt ausgelesen.
Syntax entspricht der Funktion SET_ITEM_ARRAY
Beispiel :
dim test,1,3
def_string "st1",..
def_string "st2",..
def_string "st3",..
get_item_array "st",test,1,3
------------------------------------------------------------------------------
(ALL)
Bei EVENT_ON_ITEM gibt es folgende neue FLAGS :
"maximize" Fenster wird auf maximale Größe dargestellt
"minimize" Fenster wird in Symbolgröße verkleinert
"create" Objekt wird neu erstellt ( bei Listboxen, Slider und Comboboxen )
------------------------------------------------------------------------------
(ALL) <Neu>
DEF_NUMBER id$,x,y,len,vorgabe$,range$;flags
Eingabe eines numerischen Werts.
Die <flags> entsprechenen denen von DEF_STRING.
Weitere Flags :
commas Es werden Kommas und Punkt für Trennung
von Dezimal und Tausender-Stellen verwendet
(Verwendung wie Einstellung des Systems)
currency Währungssymbol wird mit angezeigt.
decimal x x=0..6 Anzahl der Nachkommastellen
percent Zeigt Zahl mit Prozentzeichen
scientific Zeigt Zahl in wissenschaftlicher Form (z.B. 10 E+10)
Beispiel : Zahleneingabe rechtsbündig,zwei Stellen nach dem Komma und
Möglichkeit Feldinhalt zu überschreiben.
DEF_NUMBER "num1",2,2,10,"200.50","100..3000";"decimal 2","right","clear"
------------------------------------------------------------------------------
(ALL) <Änderung>
DEF_STRING "id",x,y,len,text$ [,focuslänge] ; ...
focuslänge muß <= len sein
Die Focuslänge ist die Länge der sichtbaren Eingabezone.
<len> gibt an wieviele Zeichen eingegeben werden dürfen.
Ist len > focuslänge dann wird im Eingabefenster gescrollt.
------------------------------------------------------------------------------
(ALL) <Änderung>
Bei den aufgeführten Datenbankbefehlen kann (muß nicht) ein weiterer numerischer
Parameter (Variable) mit angegeben werden.
Beispiel : IOPEN 1,"test" [,fehlercode]
Tritt ein Fehler auf, so kann der Fehlercode ermittelt werden.
KIM öffnet dann keine Fehlerbox.
Gehen Sie vorsichtig hiermit um !
Befehle :
ISTART, IENDE, IOPEN, INEXT, IPREV, IMAKEINDEX, IOPEN_INDEX,
ICLOSE_INDEX, IREINDEX, ICREATE, ILOCK, IULOCK, ISET, IREAD,
ICLOSE, IGO_NR
------------------------------------------------------------------------------
F E H L E R C O D E S
Code Fehler
-----------------------------------------------------------------------------
Allgemein...
-10 Fehler beim schließen einer Datei
-20 Fehler beim Erstellen einer Datei (Dateiname,Platte voll,..)
-30 Fehler beim bestimmen der Dateilänge
-40 Fehler beim Einstellen der Dateilänge
-50 Fehler beim Sperren einer Datei
-60 Fehler beim Öffnen einer Datei (nicht vorh.,..)
-70 Fehler beim lesen in einer Datei
-80 Fehler beim Löschen
-90 Fehler beim Umbenennen
-100 Fehler beim Positionieren des Dateizeigers
-110 Fehler beim Entsprerren einer Datei
-120 Platte voll beim schreiben in eine Datei
-200 Datei ist keine Datendatei
-210 Unbekannter Feldname
-220 Unbekannter Feldtyp
-230 Datensatzlänge zu groß
Index...
-300 Subindex fehlt (Datensatz hat keinen Eintrag im Index)
-310 Keine richtige Indexdatei
-330 Subindex nicht gefunden (Name nicht gefunden)
-340 Kein eindeutiger Schlüssel
Ausdrücke...
-400 Komma oder Klammer erwartet
-410 Ausdruck nicht vollständig
-420 Name der Datendatei nicht ermittelt
-422 IIF() erfordert Parameter von gleicher Länge
-425 SUBSTR() und STR() erfordert Konstanten als Parameter
-430 Anzahl der Parameter sind falsch
-440 Überlauf bei der Auswertung eines Ausdrucks
-450 Rechte Klammer fehlt
-460 Typ der Unterausdrucks ist falsch
-470 Unbekannte Funktion
-480 Unbekannter Operator
-490 Unbekannter Wert
-500 Unbeendeter String
Optimierungsfehler ...
-610 Allgemeiner Optimierungsfehler
-620 Fehler bei der Aufhebung der Opt.
-630 Fehler beim Herausschreiben der Datei
Relationen...
-710 Allgemeiner Relationsfehler
-720 Übereinstimmender Slave-Datensatz nicht gefunden
Schwere Fehler...
-910 Interner Fehler
-920 Nicht genug Speicher
-930 Unerwarteter Parameter
-950 Unerwartetes Ergebnis
R Ü C K M E L D U N G E N
-------------------------
0 Aufruf erfolgreich
1 Suchschlüssel gefunden
2 Suchaufruf nicht erfolgreich, Positionierung erfolgt
hinter den abgefragten Suchschlüssel.
3 Dateiende
4 Dateianfang
5 Datensatz oder Subindexschlüssel fehlt
10 Index in absteigender Reihenfolge sortiert
20 Subindex nur eindeutigen Schlüssel und es wurde
versucht einen gleichen Key anzufügen.
40 Datensatz wird ignoriert
45 Datensatz wird beibehalten
50 Teil der Datendatei gesperrt
60 Datei konnte nicht angelegt werden
70 Datei konnte nicht geöffnet werden
80 Subindexname nicht gefunden
90 Slave-Datensatz wurde nicht gefunden
------------------------------------------------------------------------------
(OS2) <Neu>
Befehle für Cliboard-Nutzung
SETCLIP var$
GETCLIP var$
SETCLIP schreibt den Inhalt von var$ in das Clipboard
GETCLIP liest den Inhalt des Clipboards
Für das Lesen des Clipboardinhalts sollten Sie eine Memovariable benutzen,
da andere Variablen auf 255 Zeichen beschränkt sind !
------------------------------------------------------------------------------
(ALL) <Änderung>
SET_KEYMAP key$,rückgabenr,pos
Es können nun statt 10 Keys, 25 Keys definiert werden (OS2/DOS)
------------------------------------------------------------------------------
(ALL) <Neu>
ISKIP dbnr, anzahl
Bewegt den Datenbankzeiger bei einen positiven Wert um <anzahl> vorwärts
in der Datenbank oder bei einen negativen Wert um <Anzahl> zurück in
der Datenbank. Werden dabei die Datenbankgrenzen (Anfang,Ende) überschritten,
wird der Datenbankzeiger entsprechend auf den Anfang oder das Ende gesetzt.
------------------------------------------------------------------------------
(ALL) <Neu>
ISOMAP wert
wert = 0 Iso-Zeichensatz mapping wird nicht durchgeführt
wert = 1 Iso-Zeichensatz mapping wird durchgeführt
Betrifft alle anzeigen von Umlauten
------------------------------------------------------------------------------
(ALL) <Änderung>
IN-Befehl gibt nun korrekt Position in einer Zeichenkette wieder
------------------------------------------------------------------------------
(ALL) <Neu>
SQRT zahl,erg
Gibt Wurzel aus Zahl zurück
------------------------------------------------------------------------------
(ALL) <Neu>
ADD_ITEM_ARRAY "obj","objB",von,bis
Ein Array von Objekten : objBvon,...objBbis werden an das Objekt obj
addiert.
------------------------------------------------------------------------------
(ALL) <Änderung>
DATUM date,flag oder
DATUM date
flag = 3 TT.MM.YYYY
2
1
------------------------------------------------------------------------------
(ALL) <Änderung>
IMPORT datei$
funktioniert nun unter KIM 2.x
------------------------------------------------------------------------------
(ALL) <Änderung>
Das Mapping der Zeichensätze für Datenbank und Bildschirmausgabe funktioniert
nun automatisch.
D.h. In einer Dbase-Datenbank werden nicht ANSI-Zeichen sondern der
normale OEM Zeichensatz genutzt.
Datenbank ist über alle Systeme einheitlich
------------------------------------------------------------------------------
(ALL) <Änderung>
Automatische Konvertierung von Strings in numerische Werte
Beispiel :
deffloat a (Wichtig !!! numerische Variable !!! )
defstring text1,text2
text1="3.5"
text2="10"
a=text1+text2*"2" --> a = 23.5
Dies funktioniert nur dann wenn der linke Ausdruck eine numerische Variable ist.
Ist der linke Ausdruck eine Stringvariable ist nur der Verknüpfungsoperator
"+" möglich. (wie vorher)
------------------------------------------------------------------------------
(ALL) <Neu>
Aliasvariablen
--------------
Beispiel :
dim test,1,10
defstring text
text="test1"
&text&="Hallo Leute" (das Bedeutet : test1="Hallo Leute")
------------------------------------------------------------------------------
(ALL) <Änderung>
Bei IADD und IMODREC werden Daten nun sofort auf die Platte gesichert.
Indexdateien werden auch auf Platte aktualisiert.
------------------------------------------------------------------------------
(ALL) <Änderung>
Bei VAL / FORM Funktion werden Zahlen wie 12,50 in 12.50 gewandelt.
Daten werden in Datenbank immer mit Dezimalpunkt gespeichert.
------------------------------------------------------------------------------
------------------------------------------------------------------------------
********************* Neueste KIM 2.1 Befehle ********************************
------------------------------------------------------------------------------
------------------------------------------------------------------------------
(ALL) <Neu 2.1>
Farben der Prompts (DEF_PROMPT)
-------------------------------
Hier können Sie auf einmal die Farbe aller Prompts in einem Programm
verändern.
Für die Forder- und Hintergrundfarbe wird die Palette 9 benutzt.
(def_palette 9,...)
Standardeinstellung ist Hintergrund : weiß
und Fordergrund : schwarz
------------------------------------------------------------------------------
(ALL) <Neu 2.1>
Userfunktionen
--------------
Neu in KIM 2.1 sind die sogenannten Userfunktionen.
Beispiel der alten Funktionsweise :
Sie haben einen Button definiert und an ein Fensterobjekt addiert.
Drücken Sie den Button, haben Sie bis jetzt über die Funktion
"get_item_pos" festgestellt ob die linke Maustaste oder die ENTER-
Taste gedrückt wurde. Nun musste man noch prüfen welches Objekt
angesprochen wurde und hat dann einen entsprechenden
Programmcode gestartet.
Neu :
Der Userfunktionsname besteht aus dem Namen des Objekts und einen
Ergeignis. ( z.B. "Button1_select()"
Wird z.B. ein Button "Button1" angeklickt, wird die Funktion
Button1_select() aufgerufen.
Folgende Ereignisse werden als Userfunktion bereitgestellt :
Userfunktion Ereignis
-------------------------------------------------------------------
Button1_select() -> Objekt wird angeklickt oder mit ENTER
ausgewählt, entspricht taste=13
Button1_getfocus() -> Objekt erhält den Fokus
Button1_lostfocus() -> Objekt verliert den Fokus
Button1_doubleclick() -> Nur wenn Objekt die Eigenschaft :
"double_click" erhält.
Button1_validate() -> Bei Eingabefehler, z.B. Eingabe außerhalb
des gültigen Bereichs.
Button1_changed() -> User hat Feldeintrag geändert
// Funktioniert nur bei def_string momentan
Die alte Programmierweise kann beibehalten werden.
Eine Userfunktion muß nicht definiert sein. Ist aber für die
Zukunft aber der schnellere Weg.
Beispielprogramm für eine Userfunktion :
(.. bedeutet zusätzlicher Code )
def_window "window",...
def_button "button1",..
add_item "window","button1"
win_paint "window"
while i<>1000
win_ev i
wend
end
rem ****************************************
rem Eventfunktionen
rem ****************************************
modul button1_select()
rem Wenn Button gedrückt wurde, dann soll ein Ton erklingen
beep
endmod
------------------------------------------------------------------------------
(ALL) <Neu 2.1>
Tastaturevents
--------------
Eventfunktion um die Tastatureingaben abzufangen :
Vorher muß die entsprechende Taste mit SET_KEYMAP definiert sein.
MODUL SYSTEM_KEYPRESS()
if system.keypress=10005 then
beep
endif
ENDMOD
Innerhalb der Funktion SYSTEM_KEYPRESS wird ein logischer
Tastenevent an die Variable <system.keypress> übergeben.
Diese Variable muß nicht deklariert werden.
Dies übernimmt KIM.
Die Variable <system.keypress> liefert nur gemappte Tasten zurück !
------------------------------------------------------------------------------
(ALL) <Neu 2.1>
EVENT_ON_ITEM "id" , "create"
Mit diesem Event wird veranlasst, das ein Objekt neu erstellt wird.
Als Beispiel möchte ich die Combo-Box nennen.
Es werden Elemente an das Combo-Box-Objekt addiert und entfernt.
Damit das Objekt aktualisiert wird, kann es über den Event "create"
neu erstellt werden.
------------------------------------------------------------------------------
(ALL) <Neu 2.1>
DEF_SCROLLBAR
Nun ist es möglich ein Scrollbarobjekt an ein Fenster zu addieren.
Im Fenster kann nun gescrollt werden.
Als Beispielanwendung nenne ich eine Artikelverwaltung die nicht auf
eine Seite passt. Nun muß man nicht mehr über mehrere Fenster arbeiten.
------------------------------------------------------------------------------
(ALL) <Neu 2.1>
DEF_STATUSBAR <id> , Höhe
Definiert eine Statuszeile am unteren Fensterrand.
An die Statuszeile können folgende Objekte addiert werden :
String-, Datums-, Zeit- und Nummernfelder.
Weiterhin können Buttons und Icons addiert werden.
Die Statuszeile dient als Meldefenster und liefert keine
Rückgabewerte.
------------------------------------------------------------------------------
(ALL) <Neu 2.1>
DEF_NOTEBOOK <id>
Mit dieser Funktion kann ein Notebook-Objekt definiert werden.
An ein Notebook-Objekt werden Fensterobjekte addiert.
Diese ergeben mit Ihren Überschriften die Notebook-Seiten.
Ein Notebook-Objekt wird dann zum Hauptfenster addiert.
Beispiel :
def_window "haupt",...
def_notebook "note"
def_window "Seite 1",..
def_window "Seite 2",..
def_window "Seite 3",..
Windows an das Notebook addieren ...
add_item "note","Seite 1","Seite 2","Seite 3"
Notebook an das Hauptfenster addieren ...
add_item "haupt","note"
Ein Notebook-Objekt passt sich in das Hauptfenster ein. Wechseln der
Ordnerseiten erfolgt über die Tastatur mit den Tasten am Zehnerblock :
Bild hoch und Bild runter. Wird die NUM-LOCK Taste eingeschaltet,
werden die Zahlen 9 und 3 wiedergegeben.
Unter Windows darf auf einer Notebookseite kein Pulldownmenü existieren.
------------------------------------------------------------------------------
(ALL) <Neu 2.1>
DEF_BITMAP id,x,y,xr,yr,bitmapdateiname
Lädt eine Bitmapdatei 16-256 Farben von Disk oder Festplatte und stellt Sie
in einem Fenster dar.
id Objekt-ID$
bitmapdateiname Bilddatei
x,y,xr,yr Pixel-Koordinaten im Fenster
Beispiel :
siehe BITMAP.KIM
------------------------------------------------------------------------------
(ALL) <Änderung 2.1>
IGETREC_ARRAY db,flag,trenn,record,var,start,ende,feldx,feldy,.. ;len1,len2,len3
Neu :
Nach der Angabe der Felder kann man die Feldformatierung angeben.
Es folgen dann nach einem Strichpunkt die Formatierungslängen der einzelnen
Variablen (Mit Komma getrennt )
------------------------------------------------------------------------------
(ALL) <Änderung 2.1>
Pulldownmenüs
-------------
Beispiel : Flag
Datei (def_pulldown_iten) ,1
.
Neu (def_popup_item) ,0
.
Eigenschaften (def_pulldown_item) ,1
................ Neutral (def_popup_item) ,0
................ Allgemein (def_popup_item) ,0
Das Flag bedeutet, es wird eine Userfunktion (flag=0) aufgerufen.
Im oberen Beispiel darf das Objekt "Datei" keine Userfunktion aufrufen,
(flag=1) da sonst die Userfunktionen der Childobjekte "Neu,Eigenschaften..."
deaktiviert werden.
Auf Deutsch : Besitzt ein Pulldown-Menü-Punkt weitere Unterpunkte, dann
erhält dieser das Flag den Wert 1. Die Unterpunkte erhalten den Wert 0,
falls diese nicht wieder Unterpunkte besitzen.
------------------------------------------------------------------------------
(ALL) <Neu 2.1>
SUB_ITEM_ARRAY "id","element",von,bis
Entfernt ein Array von Elementen von einen Objekt
------------------------------------------------------------------------------
(ALL) <Neu 2.1>
SETLANG flag
flag=0 (Standard) Bei Zahlenfelder aus Datenbank einer
Datenbank wird der Punkt in ein Komma gewandelt
(Deutschland)
Flag=1 Punkt bleibt.
------------------------------------------------------------------------------
(ALL) <Neu 2.1>
DEF_WINDOW "id",x,y,breite,hoehe [,Iconname,Icontext]
Falls ein Fenster auf Symbolgröße verkleinert wird, kann ein
Icon definiert werden. (Gilt auch für DEF_WINDOW_ST )
Iconname Name aus einer DAT-Datei (Load_dat)
Icontext Text bei Icon im verkleinerten Zustand
------------------------------------------------------------------------------
(ALL) <Neu 2.1>
SETFOCUS "id"
Objekt "id" erhält den Eingabefokus. (Keine Reihenfolgeänderung
wie bei ADD_ITEM.)
------------------------------------------------------------------------------
(ALL) <Neu 2.1>
DESTROY "id"
Alle Elemente eines Objekts werden gelöscht.
Beispiel :
Alle Objekte einer Liste werden gelöscht. Dabei ist "id" die
Objekt-ID der Liste.
Achtung !
---------
Wenn Elemente eines Objekts (z.B. Liste) gelöscht werden,
dann können diese Elemente nicht mehr an ein Objekt addiert
werden, ohne das Sie vorher neu deklariert wurden. (DEF_...)
Wird dies trotzdem versucht, erhalten Sie eine Systemfehlermeldung.
------------------------------------------------------------------------------
(ALL) <Neu 2.1>
Datumsfunktionen :
------------------
defstring date1,date2
deffloat zeit1,zeit2
deffloat tag
rem Beispiel für das verwenden der Datumsfunktionen ...
date1="19940402"
rem Wandelt CCYYMMTT ---> Julianische Zahl
datetoju date1,zeit1
zeit1=zeit1+10
rem Wandelt Julianische Zahl ---> CCYYMMTT
jutodate zeit1,date1
rem Ermittelt Wochentag 1=Sonntag ... 7=Samstag
datetow date1,tag
rem Wandelt 10.12.94 --> 19941210
date1="10.12.94"
dateformat 0,"DD.MM.YY",date1,date2
rem Wandelt 19941210 ---> 10.12.94
date1="19941210"
dateformat 1,"DD.MM.YY",date1,date2
end
------------------------------------------------------------------------------
(ALL) <Neu 2.1>
- Max. Programmcode auf 500 KB erhöht
- Anzahl der max. geöffneten Dateien auf 50 FILES gesetzt
- Code optimiert
------------------------------------------------------------------------------
(ALL) <Neu 2.1>
Korrektes Rechnen auf zwei Stellen nach dem Komma. Für die Berechnug von
langen Zahlenreihen, ist es nun möglich auf 2 Stellen nach dem Komma
exakte Ergebnisse zu erzielen.
CALC "+" , wert$ , wert2$ , ergebnis$
CALC "-" , wert$ , wert2$ , ergebnis$
Beispiel :
wert$ = "12.45"
wert2$= "15.30"
calc "+",wert$,wert2$,ergebnis$
rem ergebnis$="27.75"
------------------------------------------------------------------------------
(ALL) <Neu 2.1>
Es wird ein kleiner Reportgenerator mitgeliefert.
siehe Datei : REPORT.DOC
------------------------------------------------------------------------------
(ALL) <Neu 2.1>
GET_COUNT id$,wert
Ermittelt die Anzahl der Elemente in einem Fenster, Listbox oder Combobox.
Wird die Funktion auf ein Objekt ohne Listeigenschaft angewendet,
erhält man den Wert -1 als Rückgabe.
------------------------------------------------------------------------------
(ALL) <Neu 2.1>
GET_ITEM id$,rueckgabe$ [,index]
Nun ist es möglich den Inhalt des n-ten Element einer Listbox oder Combox
zu ermitteln. ( Ab Basis 1 )
------------------------------------------------------------------------------
(ALL) <Neu 2.1>
DEF_WINDOW id$,x,y,xr,yr [,iconname,iconText,ticks]
DEF_WINDOW_ST id$,x,y,xr,yr [,iconname,iconText,ticks]
TIMER-Funktion
--------------
Als Beispiel siehe TIMER.KIM.
Unter KIM ist es nun möglich in einen bestimmten Intervall auf ein
Ereignis zu reagieren. Hierfür wurde der Befehl DEF_WINDOW erweitert.
Als Zeitintervall dient ein Tick. (18.2 Ticks in der Sekunde)
ICON-Funktion
-------------
Wenn ein Fenster auf Symbolgröße verkleinert wird, kann man ein Icon aus
einer DAT-Datei angeben. Dieses wird mit dem entsprechenden <iconText>
dargestellt.
------------------------------------------------------------------------------
(ALL) <Neu 2.1> <Längenkorrektur>
DEF_PROMPT
Es gibt nun die Möglichkeit an einen DEF_PROMPT Ausgabe eine bestimmte
Menge von Leerzeichen anzuhängen.
Definieren Sie die numerische Variable DEF_PROMPT_LEN.
Weisen Sie dieser Variable die Anzahl der Leerzeichen zu.
Der Wert -1 bedeutet, daß die DEF_PROMPT Routine vom Betriebssystem
genutzt wird.
------------------------------------------------------------------------------
(ALL) <Neu 2.1>
SET_MOUSE_STATUS x
x = 0 normaler Mauszeiger
x = 1 Sanduhr , Uhr
------------------------------------------------------------------------------
(ALL) <Neu 2.1>
Das Tabellenobjekt
------------------
An dieser Stelle möchte ich ein paar Worte über das Tabellenobjekt verlieren.
Die Programmierung ist einfach, wenn man einmal die Funktionsweise des T.O.
verstanden hat. Als Beispiel dient das Programm : TABLE.KIM.
Momentan kann nur eine Tabelle pro Programm definiert werden.
In einer Reihe können maximal 50 Spaltenelemente definiert werden.
Die Anzahl der Reihen ist von ihrer Vorgabe abhängig.
Für den Indexwert dient die Basis 0. (Rückgabewerte werden 0,1,2... gezählt)
Bei der Deklaration eines T.Os , geben Sie als Parameter einen
Array-Namen an. Diese Array muß vorher mit DIM definiert sein. Ein Arrayelement
(z.B. _arr4 ) entspricht einer Zeile in der Tabelle. Eine Tabellenzeile besteht
aus eins oder mehreren Eingabefeldern. Die Aufteilung des Inhalts eines
Arrayelements auf die einzelnenen Felder einer Zeile erfolgt über ein
Trennzeichen. Dieses Trennzeichen geben Sie bei der Tabellendefinition mit an.
Aufbau einer Tabelle :
DEF_TABLE (Definition der Tabellengrunddaten)
DEF_HEADER (Definition einer Kopfzeile für Spaltenüberschriften)
DEF_PROMPT (Defintion der einzelnen Spaltenüberschriften)
DEF_PROMPT ...
ADD_ITEM "HEADER","PROMPTS" (Anfügen der Überschriften an die Kopfzeile)
ADD_ITEM "TABLE","HEADER" (Anfügen der Kopfzeile an das Tabellenobjekt)
DEF_TABLE_REC (Defintion einer Tabellenzeile)
DEF_STRING (Definition von Eingabefelder in der Tabellenzeile)
DEF_NUMBER ...
ADD_ITEM "TABLE_REC","STRING","NUMBER,... (Anfügen der Eingabefelder an die
Tabellenzeile )
ADD_ITEM "TABLE","TABLE_REC" (Anfügen Tabellenzeile an das Tabellenobjekt)
ADD_ITEM "WINDOW","TABLE" (Anfügen Tabellenobjekt an das Fenster)
Syntaxbeschreibungen :
DEF_TABLE "id",x,y,breite,hoehe,anzahl_felder,groesse,anzahl_vorbelegt,
array_structur,trennzeichen [;flags]
"id" Object ID
x,y,breite,hoehe Größe der Tabelle
anzahl_felder Anzahl der Felder in einer Tabellenzeile
groesse Anzahl der max. Bytes einer Tabellenzeile
anzahl_vorbelegt Anzahl der Zeilen in der Tabelle, die beim
ersten Darstellen gezeigt werden.
array_structur Name des Arrays (Abbild der Tabelle)
trennzeichen Wert zwischen (0-255)
[;flags] Allgememeine Flags wie "region off","border",..
DEF_HEADER "id" Definition einer Kopfzeile
DEF_TABLE_REC "id",breite,hoehe Defintion eines Zeilenobjekts
GET_TABLE_COUNT "id",anzahl Ermittlung der sichtbaren Tabellenzeilen
GET_TABLE_RECNR "id",position Ermittlung der aktuellen Position
SET_TABLE_RECNR "id",position Setzen der aktuellen Position
ADD_TABLE_REC "id" Anfügen einer neuen Tabellenzeile
------------------------------------------------------------------------------