Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Schleife parallel

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
spawn



Anmeldungsdatum: 09.08.2005
Beiträge: 45

BeitragVerfasst am: 17.08.2005, 23:09    Titel: Schleife parallel Antworten mit Zitat

Hi,

Ich habe in einem Programm in dem ich einige Parameter eingeben muss ca 15.
Parallel dazu möchte ich einen Hinweis
(LOCATE x, y: PRINT "Hinweis - BLA BLA BLA") ca. 10 mal und periodendauer ca.1 sek. (also unabhängig zur eingabe und parallel dazu).

Eine einfache Schleife dazu wäre ja na Adam Rise:

FOR X = 1 TO 10
FOR Y = 1 TO 2
IF Y = 1 THEN LET Col = 1(blau)
IF Y = 2 THEN LET Col = 4(rot)
COLOR Col
LOCATE S, Z: PRINT "Hinweis!!!"
FOR Z = 1 to 5000000(?): NEXT Z
NEXT Y
NEXT X

Diese muss dan paralel zu diesem Eingabeblock ablaufen ohne von ihm zeitlich beeinflusst zu werden.

Danke
Guido
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Skilltronic



Anmeldungsdatum: 10.09.2004
Beiträge: 1148
Wohnort: Köln

BeitragVerfasst am: 17.08.2005, 23:39    Titel: Antworten mit Zitat

Hallo

Im Grafikmodus SCREEN 0 kannst du Text blinken lassen, wenn wenn du als Farbwert einen zwischen 16 und 31 benutzt. Die entsprechen denen von 0-15, nur das sie eben blinken. Allerdings nur zwischen Vorder- und Hintergrundfarbe.

also

COLOR 20,0
PRINT "Hinweis!!!"

Gruss
Skilltronic
_________________
Elektronik und QB? www.skilltronics.de !
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
spawn



Anmeldungsdatum: 09.08.2005
Beiträge: 45

BeitragVerfasst am: 18.08.2005, 00:43    Titel: Antworten mit Zitat

Hi,

erstmal danke für die Antwort!

Leider muss ich screen 9 oder 12 benutzen.

MFG
Guido
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Skilltronic



Anmeldungsdatum: 10.09.2004
Beiträge: 1148
Wohnort: Köln

BeitragVerfasst am: 18.08.2005, 02:33    Titel: Antworten mit Zitat

Hallo

Dann kannst du die Eingabe aber nicht mehr mit Input machen, was die Sache sehr umständlich macht.

Gruss
Skilltronic
_________________
Elektronik und QB? www.skilltronics.de !
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 18.08.2005, 11:47    Titel: Antworten mit Zitat

Schau in die MonsterFAQ unter Texteingabe, da steht eine INPUT-Ersatz-Routine.

Zum Thema Unabhängig vom Hauptprogramm: Schau in die MonsterFAQ unter Datum & Uhrzeit,
das steht das mit ON TIMER().

Wenn du einen Grafikmodus verwendest, kannst du die Wartezeiten mit
Code:

WAIT &H3DA, 8
WAIT &H3DA, 8, 8

machen. Das wartet bei einer Bildwiederholfrequenz von 70Hz ~1/70s, da es auf den Bildschirmstrahlrücklauf wartet.

Eine Warteschleife à la
Code:

FOR d = 1 to wasweissich: NEXT d

ist grundsätzlich abzulehnen, da sie sehr instabil ist.

Zum Thema Wartezeiten steht übrigens auch was in der MonsterFAQ.

jb


Zuletzt bearbeitet von jb am 03.09.2005, 11:19, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Unreal



Anmeldungsdatum: 21.08.2005
Beiträge: 3

BeitragVerfasst am: 21.08.2005, 02:13    Titel: Antworten mit Zitat

Also...
ich hätte hier folgende Lösung:

Code:
'Deklarieren der Datenfelder
 DIM abfr(1 TO 15) AS STRING
 DIM info(1 TO 15) AS STRING
 DIM eing(1 TO 15) AS STRING

'Festlegen der Abfragen/Infos
 abfr(1) = "Abfrage1": info(1) = "Info1"
 abfr(2) = "Abfrage2": info(2) = "Info2"
'...

CLS

'Abfrage-Schleife x15
 FOR i% = 1 TO 15

   'Zeitvariable zuruecksetzen
    t = 0

     DO

      'Abfrage & Eingabe schreiben
       COLOR 15: LOCATE i%, 5
       PRINT abfr(i%); ": "; eing(i%); "_ "

         DO

           'jede Sekunde...
            IF t + 1 <= TIMER OR t > TIMER THEN

             'Farbe aendern
              IF frb% = 1 THEN frb% = 4 ELSE frb% = 1
              COLOR frb%

             'Info schreiben
              LOCATE i%, 40: PRINT info(i%)

             'Zeit nehmen
              t = TIMER

            END IF

          'Tastenabfrage
           tast$ = INKEY$

         LOOP UNTIL tast$ <> ""

      'Tastenauswertung...
      'Zeichen ab ASCII 32 = Eingabe
       IF tast$ >= " " AND LEN(eing(i%)) < 20 THEN eing(i%) = eing(i%) + tast$

      'Backspace = letztes Zeichen loeschen
       IF tast$ = CHR$(8) AND LEN(eing(i%)) >= 1 THEN eing(i%) = LEFT$(eing(i%), LEN(eing(i%)) - 1)

      'ESC = Abbruch
       IF tast$ = CHR$(27) THEN SYSTEM

    'Enter = Eingabe beendet
     LOOP UNTIL tast$ = CHR$(13)

   'Ueberfluessige Anzeigen loeschen
    COLOR 15: LOCATE i%, 5
    PRINT abfr(i%); ": "; eing(i%) + SPACE$(74 - LEN(abfr(i%)) - LEN(eing(i%)))

 NEXT i%

Tja, mir war mal langweilig grinsen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2529
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 21.08.2005, 13:08    Titel: Artikel zum Thema Pseudo-Multitasking Antworten mit Zitat

Siehe Artikel

http://www.dreael.ch/Deutsch/BASIC-Knowhow-Ecke/EreignisSchleife.html
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz