home *** CD-ROM | disk | FTP | other *** search
- ' *********************************************************
- ' Toolshft.Bas für Quick Basic
- ' (c) 1990 Th.Frins/W.Kehr & toolbox
- ' enthält diverse SUBs und Functions
- ' -- mehr dazu auf den DATABOX-Disketten: --
- ' die mit ' auskommentierten Funktionen und Unterprogramme
- ' sind bei der DATABOX-Version im Quellcode enthalten.
- ' Sie stellen weitere interessante Routinen zur Verfügung.
- ' *********************************************************
-
- DECLARE SUB Normal ()
- DECLARE SUB Invers ()
- DECLARE SUB Warten (ZeilenNr%)
- DECLARE SUB Fehlmeld (ZeilenNr%, Fehlertext$)
- DECLARE SUB HellBlinken ()
- DECLARE SUB Unterstrichen ()
- DECLARE SUB Hell ()
- DECLARE SUB Blinken ()
- DECLARE SUB BildLoeschen (ZeileLinksOben%, SpalteLinksOben%,
- ZeileRechtsUnten%, SpalteRechtsUnten%,
- LoeschZeichen$)
- DECLARE SUB Rahmen (ZeileLinksOben%, SpalteLinksOben%,
- ZeileRechtsUnten%, SpalteRechtsUnten%,
- RahmenZeichen$)
- ' DECLARE SUB Pruefuebergabe (zeile%, spalte%, typ$,
- ' laenge%, nachkomma%, gueltig$, vorgabe$,
- ' vorzeichen%, komma%, fehler%)
- ' DECLARE SUB Numerisch (komma%, vorzeichen%, einfmerker%,
- ' eingabe$, laenge%, position%, v$)
- ' DECLARE SUB Zeichen (einfmerker%, eingabe$, laenge%,
- ' position%, v$)
- ' DECLARE SUB Sonder (typ$, vorzeichen%, komma%, cursor%,
- ' einfmerker%, eingabe$, laenge%, position%, v$)
- ' DECLARE FUNCTION BalkenMenue% (ZeilenNr%, SpaltenNr%,
- ' Elemente%, ErsteWahl%, abstand%, Optionen$())
- ' DECLARE FUNCTION ZeilenMenue% (ZeilenNr%, SpaltenNr%,
- ' Elemente%, ErsteWahl%, Optionen$())
-
- ' *********************************************************
- ' Beispiel für eine Funktion
- ' FUNCTION BalkenMenue% (ZeilenNr%, SpaltenNr%, Elemente%,
- ' ErsteWahl%, abstand%, Optionen$())
- ' FOR I% = 1 TO Elemente%
- ' differenz% = abstand% * (I% - 1)
- ' LOCATE ZeilenNr% + differenz%, SpaltenNr%, 0
- ' IF I% = ErsteWahl% THEN
- ' Invers
- ' PRINT "["; I%; "]"; SPACE$(3);
- ' Optionen$(I% - 1); " ";
- ' Normal
- ' ...
- ' ...
- ' IF Taste$ = CHR$(27) THEN
- ' BalkenMenue% = Elemente%
- ' ELSE
- ' BalkenMenue% = ErsteWahl%
- ' END IF
- ' END FUNCTION
- ' *********************************************************
- DIM I AS INTEGER
-
- ALLE$ = ""
- FOR I = 1 TO 255
- IF I <> 13 AND I <> 27 THEN ALLE$ = ALLE$ + CHR$(I)
- NEXT I
- ' ************* Testen der Attribut-Prozeduren ************
- CLS
- PRINT "Ein Normaler Text"
- CALL Hell
- PRINT "Jetzt wirds Hell"
- CALL Normal
- PRINT "Zurück zur Normalität"
- CALL Blinken
- PRINT "Blinken geht auf den Geist"
- HellBlinken
- PRINT "Hellblinken noch mehr"
- Normal
- PRINT "Normalität ist nicht immer das Schlechteste"
- Unterstrichen
- PRINT "Unterstrichenes wirkt hervorgehoben"
- PRINT
- Invers
- PRINT "Invers - auch Revers genannt - braucht man oft"
- Normal
- PRINT "Schluß mit dem Zauber"
-
- Warten (24)
- ' **** Test der Rahmen- und BildLoeschen - Prozeduren ****
- CLS
- CALL Fehlmeld(24, "Rahmen-Test läuft.....")
- FOR I = 1 TO 22
- IF wert% < 176 THEN wert% = 179
- IF I < 23 - I THEN
- Rahmen I, I, 23 - I, 80 - I, CHR$(wert%)
- ELSE
- Rahmen 23 - I, I, I, 80 - I, CHR$(wert%)
- END IF
- wert% = wert% - 1
- Warten (24)
- NEXT I
- CALL Fehlmeld(24, "BildLoeschen-Test läuft.....")
- wert2% = 32
- wert% = 219
- FOR I = 1 TO 11
- SWAP wert2%, wert%
- CALL BildLoeschen(I, I, 23 - I, 80 - I, CHR$(wert2%))
- Warten (24)
- NEXT I
- ' *********************************************************
- SUB BildLoeschen (ZeileLinksOben%, SpalteLinksOben%,
- ZeileRechtsUnten%, SpalteRechtsUnten%,
- LoeschZeichen$)
- IF LoeschZeichen$ = "" THEN LoeschZeichen$ = " "
- FOR I% = ZeileLinksOben% TO ZeileRechtsUnten%
- LOCATE I%, SpalteLinksOben%
- PRINT STRING$(SpalteRechtsUnten% - SpalteLinksOben%
- + 1, LoeschZeichen$);
- NEXT I%
- LOCATE 1, 1, 0
- END SUB
- ' *********************************************************
- SUB Blinken
- COLOR 18, 0
- END SUB
- ' *********************************************************
- SUB Fehlmeld (ZeilenNr%, Fehlertext$)
- LOCATE ZeilenNr%, 2, 0
- PRINT Fehlertext$;
- IF LEN(Fehlertext$) > 50 THEN
- CALL Warten(ZeilenNr% + 1)
- ELSE
- CALL Warten(ZeilenNr%)
- END IF
- END SUB
- ' *********************************************************
- SUB Hell
- COLOR 10, 0
- END SUB
- ' *********************************************************
- SUB HellBlinken
- COLOR 26, 0
- END SUB
- ' *********************************************************
- SUB Invers
- COLOR 0, 7
- END SUB
- ' *********************************************************
- SUB Normal
- COLOR 7, 0
- END SUB
- ' *********************************************************
- SUB Rahmen (ZeileLinksOben%, SpalteLinksOben%,
- ZeileRechtsUnten%, SpalteRechtsUnten%, RahmenZeichen$)
- SELECT CASE RahmenZeichen$
- CASE CHR$(201)
- ZeichenLinksOben$ = CHR$(201)
- ZeichenLinksUnten$ = CHR$(200)
- ZeichenRechtsOben$ = CHR$(187)
- ZeichenRechtsUnten$ = CHR$(188)
- ZeichenWaagrecht$ = CHR$(205)
- ZeichenSenkrecht$ = CHR$(186)
- CASE CHR$(218)
- ZeichenLinksOben$ = CHR$(218)
- ZeichenLinksUnten$ = CHR$(192)
- ZeichenRechtsOben$ = CHR$(191)
- ZeichenRechtsUnten$ = CHR$(217)
- ZeichenWaagrecht$ = CHR$(196)
- ZeichenSenkrecht$ = CHR$(179)
- CASE CHR$(213)
- ZeichenLinksOben$ = CHR$(213)
- ZeichenLinksUnten$ = CHR$(212)
- ZeichenRechtsOben$ = CHR$(184)
- ZeichenRechtsUnten$ = CHR$(190)
- ZeichenWaagrecht$ = CHR$(205)
- ZeichenSenkrecht$ = CHR$(179)
- CASE CHR$(214)
- ZeichenLinksOben$ = CHR$(214)
- ZeichenLinksUnten$ = CHR$(211)
- ZeichenRechtsOben$ = CHR$(183)
- ZeichenRechtsUnten$ = CHR$(189)
- ZeichenWaagrecht$ = CHR$(196)
- ZeichenSenkrecht$ = CHR$(186)
- CASE ELSE
- ZeichenLinksOben$ = RahmenZeichen$
- ZeichenLinksUnten$ = RahmenZeichen$
- ZeichenRechtsOben$ = RahmenZeichen$
- ZeichenRechtsUnten$ = RahmenZeichen$
- ZeichenWaagrecht$ = RahmenZeichen$
- ZeichenSenkrecht$ = RahmenZeichen$
- END SELECT
- LOCATE ZeileLinksOben%, SpalteLinksOben%
- PRINT ZeichenLinksOben$; STRING$(SpalteRechtsUnten% -
- SpalteLinksOben% - 1, ZeichenWaagrecht$);
- ZeichenRechtsOben$;
- FOR I% = ZeileLinksOben% + 1 TO ZeileRechtsUnten% - 1
- LOCATE I%, SpalteLinksOben%
- PRINT ZeichenSenkrecht$;
- LOCATE I%, SpalteRechtsUnten%
- PRINT ZeichenSenkrecht$;
- NEXT I%
- LOCATE ZeileRechtsUnten%, SpalteLinksOben%
- PRINT ZeichenLinksUnten$; STRING$(SpalteRechtsUnten% -
- SpalteLinksOben% - 1, ZeichenWaagrecht$);
- ZeichenRechtsUnten$;
- END SUB
- ' *********************************************************
- SUB Unterstrichen
- COLOR 1, 0
- END SUB
- ' *********************************************************
- SUB Warten (ZeilenNr%)
- LOCATE ZeilenNr%, 55, 0
- PRINT " Weiter mit ";
- Invers
- PRINT "<TASTE>";
- Normal
- dummy$ = INPUT$(1)
- LOCATE ZeilenNr%, 2, 0
- PRINT SPACE$(78);
- END SUB
- ' **************** Ende Toolshft.Bas **********************
-