home *** CD-ROM | disk | FTP | other *** search
- In diesem File finden Sie Hinweise und Tips, die im Handbuch nicht
- vermerkt sind.
-
- 14.04.1991
- ScreenManager:
- In dem ScreenManager sind zwei weiter Feldtypen hinzugekommen.
- 1. Buttons
- Ab sofort können Sie auch den Feldtyp K benutzen. Dieser Typ erzeugt einen
- Kontrollknopf oder Button. Dabei können Sie in der Parameterdefinition
- den Buttontext, den auszulösenden Tastaturcode und eine auszuführende
- Funktion angegeben. Der Knopf erscheint in der Maske als umrandeter Text.
- Ist der Knopf aktiv, erscheint der Rand doppelt, sonst einfach. Je nach
- gesetzter Positionmarke ist der Knopf invertiert oder nicht.
- Z. B. Sie können einen Knopf HILFE setzen, in der Definition geben Sie
- den Tastaturcode F1 an, und der Anwender erhält auf Buttondruck die
- Hilfe eingeblendet (sofern vorhanden ).
- Der Knopftyp erhält kein Argument uber die Funktionsparameterliste bei
- Aufruf der Funktion scanf_mask.
- Dieser Feldtyp ist nicht verfügbar für print_mask, und auch nicht
- verfügbar über eine Formatbeschreibung bei Aufruf, sondern nur durch
- Eingabe innerhalb des ScreenManagers.
- Die Festlegungen sind nunmehr in Masken untergebracht. Deshalb müssen folgende
- Dateien in das Heimverzeichnis des Screenmanagers kopiert werden.
- SM.EXE SM.WLB SM.HLP SM.ERR SM.FST
-
-
- 2. Listenfelder
- Listenfelder werden mit dem Buchstaben P angewählt. Diese Feldtypen erwarten
- ein Argument vom TYP LISTE, welches in kiwi_inc.h definiert worden ist. In
- diesem Struct wird ein Pointer auf das Itemfeld, die Anzahl Items und die
- Grösse des Scrollfeld innerhalb der Maske bereitgehalten. Als Ausgabe steht
- ein Integer bereit, der die Angabe der Auswahl ermöglicht.
- Listenfelder können z.B. zur Dateiauswahl benutzt werden. In den Beispielen
- ist eine mögliche Anwendung vorbereitet (list.exe).
-
- Dieser Feldtyp ist nicht verfügbar für print_mask, und auch nicht
- verfügbar über eine Formatbeschreibung bei Aufruf, sondern nur durch
- Eingabe innerhalb des ScreenManagers.
-
- 3. Radiobuttons
- Radiobuttons haben den Buchstaben R. damit können Sie eine exclusive
- Auswahl aus mehreren Möglichkeiten treffen. es kann immer nur ein Item
- aktiv sein. Der Datentyp ist vom Typ radio, der in KIWI_INC.H definiert
- ist. Innerhalb des Screenmanagers geben Sie die Position, die Anzahl Reihen
- und Spalten und die Abstände zwischen den Einträgen ein. Bei Abarbeitung der
- Maske wird der vaiablen vom Typ radio der jeweils gültige Wert zugewiesen.
- Auf der Demodisk finden Sie im Verzeichnis DEMO, die datei file.c .
- Dort ist ein konkretes Beispiel angegeben, wie die Radiobuttos arbeiten.
-
-
-
- 14.04.1991
- Neue Funktionen:
-
- int get_file_list(char *key, char **data);
- int reset_get_file_list();
- Diese Funktion übergibt alle zum Schlüssel passenden Dateien, in einem
- Char-array, auf das der char Pointer Data gerichtet wird. Der Datenbereich auf den data
- zeigt, wird von dieser Funktion dynamisch angefordert, und muss später wieder
- freigegeben werden. (reset_get_file_list);
-
- z: B.
- int anzahl;
- char *data;
-
- anzahl=get_file_list("*.c",&data);
- if(anzahl)zeige_dateien(data);
- reset_get_file_list();
-
-
- Dieses Fragment erzeugt eine Liste aller Dateien mit Endung .C in einem Block,
- auf den data zeigt. Die Einträge sind pro Datei 12 Zeichen, mit 2 Leerzeichen
- Trennung.
-
-
- 20.04.1991
- Fehler im Handbuch betreffend Funktion file_browse
-
- der Aufruf im Handbuch ist falsch. Der richtige Aufruf lautet
-
- browse_file(char *datei_name,int breite);
-
- datei_name ist der komplette Pfadname der Datei
- breite ist die Beite der maximalen Darstellung des virtuellen Screens
- (zwischen 80 und 265 Zeichen).
-
-
-
- 24.04.1991
-
- In den Druckerbeschreibungsdateien können nun bis zu 50
- Austauschzeichen definiert werden. Z.B.:
- Mittels des Schlüsselworts
- EXCHANGE 179,58;
- EXCHANGE 196,48;
-
- werden alle Zeichen 179, und 196 auf dem Druckerport durch 58, bzw 48 ersetzt.
- Dadurch können Beschreibungsdateien z. B. für Laserdrucker erstellt werden,
- die einen anderen Zeichensatz benutzen.
-
-
-
- 20.6.1991
- Neue Funktionen
- int count_drive();
- int change_drive(int drive);
- int get_drive();
-
- count_drive liefert die Anzahl der logischen Laufwerke,
- change_drive setzt das aktuelle logische Laufwerk auf drive (a-z)
- get_drive liefert den Laufwerksbuchstaben des aktuellen logischen Laufwerks.
-
- mkdirall(char *path);
-
- mkdirall erzeugt alle Verzeichnisse von path, egal ob diese bereits bestehen
- ob der der Verzeichnisbaum verschachtelt ist.
-
- create_hot_area(int num, int xa, int ya, int xe, int ye);
- enable_hot_area(int num);
- disable_hot_area(int num);
-
- create_hot_area erzeugt einen sensitiven Bildschirmbereich, innerhalb derer
- eine Betätigung der linken Maustaste zur Auslösung der Tastenkombination key
- führt. Für num gelten 0-9
- enable_hot_area schaltet den Status auf aktiv
- disable_hot_area schaltet den Status auf inaktiv.
-
-
- Die Funktion set_menu akzeptiert 2 neue Parameter.
- MENU_HELP bewirkt, das die aktiven Menüpunkte als Hilfsbegriffe gesetzt werden.
- NO_MENU_HELP schaltet diesen Mechanismus aus.
- Dadurch können die Aufrufe von set_help_name bei Menüauswahlen minimiert werden.
- Der Hilfsbegriff ist der Menüname.
-
-
- 20.06.1991 KIWI Soft J.F.
-
-
- int init_slider(char *string,int xpos,int ypos,int laenge, ULONG max);
- add_slider(ULONG add);
- reset_slider();
-
- Diese Funktionen realisieren einen Scrollbar, mit dem man den Ablauf einer
- bestimmten Funktion anzeigen kann. Die komplette Anzeige erfolgt in einem
- eigenen Window. Mit init_slider erzeugt man das Fenster und initialisiert
- die Datenstrukturen. Der String string wird wie bei der Funktion dialog
- gehandhabt, er kann also Zeilenvorschübe enthalten. Für xpos und ypos
- können auch die Macro AM,AL,AR verwendet werden. Die Länge des Anzeigebalken
- wird durch laenge, oder durch die maximale Zeilenlänge von string bestimmt.
- Max gibt an, bei wievielen Items 100 Prozentanzeige erreicht sein wird.
- Die Funktions add_slider addiert add Items zu der Gesamtzahl Items, die dann
- als leuchtbalken proportionaler Länge angezweigt wird. Negaive Parameter sind
- nivht möglich. Die Funktion reset_slider löscht das Window und reinitialisiert
- Datenstrukturen. Die Funktion ist nicht stapelbar, es kann immer nur ein
- Slider angezeigt werden.
-
-
- 04.03.1992
-
- Die Buttons sind nun einheitlich geregelt für Dialog, Hilfe und Masken.
- Dazu wurden 8 Funktion und ein neuer datentyp BUTTON geschaffen.
- Es können Buttonmit den Aufruf create_button erzeugt, und mit destroy_button
- eliminiert werden. activ_button und passiv_button dienen der Hervorhebung
- eines Schalters, während press_button und release_button den Schalter betätigen
- bzw wieder loslassen. Mittels der Funktion set_button_mode kann das Aussehen der
- Buttons variiert werden. Es stehen KIWI_MODE, BORLAND und MICROSOFT Modi zur
- Verfügung. Desweiteren kann mit der Funktion set_button_sound ein Ein- bzw
- Ausschaltklick definiert werden. Dieses jeweils duch die Tonfrequenz und die
- Tondauer. Genaueres bitte in den Funktionsbeschreibungen nachlesen.
-
- 18.03.1992
-
- Ab sofort steht eine weiter Art der Windowsöffnung zur Verfügung. Mittels
- set_window_display_mode und den neuen Parameter EXPLODE und ROW_WISE kann
- die Art wie ein Fenster geöffnet wird, verändert werden. Mittels
- set_window_open_delay kann dieser Vorgang verlangsamt werden, damit die
- Optik voll zur geltung kommen kann.
-
- Die Funktion set_mouse akzeptiert nun zwei weitere Makros. RIGHT_HAND und LEFT_HAND.
- LEFT_HAND vertauscht die Mausbuttons links und rechts. RIGHT_HAND setzt diese
- wieder auf default.
-
- Die Möglichkeit, bei Menüabfragen das bestehende Window zu nutzen, indem der
- Parameter win bei choose_menu und choose_sub_menu !=NULL gesetzt, und somit auf
- ein gültiges Window zeigt, mu nun explizit eingeschaltet werden. dazu akzeptiert
- die Funktion set_menu 2 neue Parameter. MENU_ENABLE_KEEP schaltet diese
- Möglichkeit ein, MENU_DISABLE_KEEP schaltet diese aus. Default ist ausgeschaltet.
- Falls also bei geschachtelten Menüs die Windows stehen bleiben, sollte in der
- INIT datei diese Möglichkeit eingeschaltet werden. Siehe auch sm_init.c .
-
- Die mask_library kann nun temporär abgeschaltet werden, um z.B. eine Maske
- zu laden, die nicht in einer Mask Library gespeichert ist. Dazu dienen die
- Funktionen enable_mask_library und disable_mask_library.
-
- Der Hintergrund eines Programms kann nun während der Laufzeit gewechselt
- werden. Dazu dient die Funktion change_screen_background(UCHAR ch). Dabei
- werden alle alten Hintergrundzeichen mit dem neuen zeichen ch ersetzt.
- Es können auch Windows offen geöffnet sein.
-
- Die Farbtabellen können ebenfalls während der Laufzeit verändert werden. Dazu
- dient die Funktion change_color_table(int nr,UCHAR vg,UCHAR bg,UCHAR ivg, UCHARibg);
- Alle Farben im Bildschirm und in Windows werden dabei geändert. Die Funktion
- kann nicht unterscheiden, wenn zwei Farbtabellen die gleichen Fareb benutzen.
- Dann werden alle Zeichenfarben geändert, ohne Rücksicht auf die Tabellennummer.
-
- 25.03.1992 KIWI SOFT J.F.
-
- Die Funktionen array_get_file und browse_get_file und list_files sind
- umgebaut worden. Diese erlauben nun auch die Anwahl von Verzeichnissen
- und Laufwerken, und somit den Zugriff auf alle Dateien innerhalb des Systems.
- Dazu sind einige Änderungen in den Aufrufparametern notwendig.
- Die Funktionen array_get_file unbd browse_get_file benötigen nun als
- key_string einen Bufferbereich von mindestens DATEI_PFAD_LEN Zeichen.
- Da nun die Möglichkeit besteht, den vorgegebenen Bereich zu verlasen,
- schreiben diese Funktionen den endgültig gewählten Verzeichnisbaum in diesen
- Buffer hinein. Falls key also ein const char *string auf einen festen String
- ist, erfolgt dann eine Zuweisung, die einen Programmabsturz zur Folge haben
- kann (und wird). Der Rüchgabeparameter name ist geblieben. Es wird empfohlen,
- nach Aufruf dieser Funktionen den Dateinamen mittels create_file_path
- zusammenzubauen, wobei der entgültige Datenpfadname ein Buffer mit Größe
- DATEI_PFAD_NASME_LEN sein muß.
- Beispiel:
- char datei[DATEI_NAME_LEN];
- char path[DATEI_PFAD_LEN];
- char pfad[DATEI_PFAD_NAME_LEN];
-
- init_string(datei,sizeof(string));
- init_string(path,sizeof(path));
- init_string(pfad,sizeof(pfad));
-
- strcpy(path,"c:/usr/Jogy/*.c");
- c=array_get_file(datei,path,AM,AM);
- create_file_path(pfad,path,datei);
-
- Dann steht in pfad der gültige Pfadname der ausgewählten datei, gleichgültig
- ob der Benutzer in dem vorgewählten Verzeichnis c:/usr/Jogy geblieben ist.
-
- Die Funktion list_files hat die gleichen Möglichkeiten, dort wird aber der
- neue datenpfad nicht im Schlüssel gespeichert, so das dort nach wir vor
- absolute Pfadnamen benutzt werden dürfen.
- Die Funktion set_get_file_acces_mask steht zur Verfügung um die Dateierfassung
- zu steuern. Dort können die MACROS GF_FILES, GF_DIRS oder GF_DRIVES mit logischer
- oder Operation benutzt werden. Die Funktion get_get_file_acces_mask übergibt die
- zur zeit gültige Zugriffsmaske.
-
-
-
- 14.04.1992
- Ab sofort ist der Aufruf der Hilfe und der Fehlermeldungen neu geregelt.
- Die Funktion check_if_get_help, die in der init.c vorhanden ist, wird ersatzlos
- gestrichen. Die Funktion input ruft nun eine Funktion bei Erkennen der
- Hilfetaste auf, die ihrerseits die Hilfefunktion über einen Funktioinspointer
- aufruft. Dieser Pointer ist normal auf no_help_op gerichtet. Die Funktion
- init_help und init_error biegen diesen Pointer nun auf die Funktion
- get_error_help, die die Hilfe auslößt. Der Umweg über die check_if_get_help
- Funktion kann somit entfallen. Dier Pointer kann auch auf eine eigenen
- Funktion verbogen werden. Dazu steht die Funktion set_help_error_call_func
- zur Verfügung.
-
- int set_help_error_call_func(int mode, int (*fnk)());
-
- Beachten Sie, das Sie innerhalb dieser Funktion nicht mehr get_help oder
- get_error aufrufen dürfen, da Sie sonst in einer Schleife steckenbleiben.
- Wollen Sie die Hilfe aufrufen benutzen Sie get_error_help(int mode) wobei
- mode=0 Hilfe und mode01 Fehlermeldung bedeuten.
-
-
-
- 15.04.1992
- Ab sofort ist der Aufruf des Windowmanagers neu geregelt.
- Die Funktion check_window_manager, die in der init.c vorhanden ist, wird ersatzlos
- gestrichen. Die Funktion input ruft nun eine Funktion bei Erkennen der
- Windowmanagersituation auf, die ihrerseits den Windowmanager über einen
- Funktioinspointer aufruft. Dieser Pointer ist normal auf no_winman_op
- gerichtet. Die Funktion init_window_manager biegt diesen Pointer nun auf
- die Funktion window_manager, die die Manipulation ausführt. Der Umweg
- über die check_window_manager Funktion kann somit entfallen.
-
-
-
-
- 14.04.1992 KIWI SOFT J.F
-
- Um sich über alle angebotenen Funktionen und deren Aufruf ein genaues
- Bild zu verschaffen, wird auf die Datei KIWI_PRO.H verwiesen. Dort
- sind alle Prototypen aller Funktionen untergebracht.
- Neue Funktionen können dort bereits dokumentiert sein, bevor diese
- in der Readme oder im Handbuch erscheinen.
-
- 20.03.1992
-