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:

Probleme mit SCREEN 12

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



Anmeldungsdatum: 19.07.2005
Beiträge: 18

BeitragVerfasst am: 22.03.2006, 11:46    Titel: Probleme mit SCREEN 12 Antworten mit Zitat

Hi,

mein Problem ist folgendes:

also ich möchte, dass sich die Uhr welche ich über TIME$ eingebunden hab sekündlich aktualisiert. Das hab ich mit einer DO LOOP schleife un SLEEP 1
realisiert.

Im normalen screenmodus läuft das problemlos aber in SCREEN 12 kommt immer ein flimmern wenn die Uhr sekündlich aktualisiert wird. traurig

Hat jemand eine IDEE wie ich dieses Problem lösen kann.

Un nochwas:

Kann QBasic mehrere Sachen gleichzeitig ausführen, also z.B. meine DO LOOP schleife mit der Uhr und gleichzeitig noch eine INPUT Eingabe?

So dass man während der INPUT Eingabe immer eine aktuelle Zeit hat ?? verwundert
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
The real Agent D



Anmeldungsdatum: 24.11.2005
Beiträge: 605
Wohnort: Hall i. T.

BeitragVerfasst am: 22.03.2006, 11:51    Titel: Antworten mit Zitat

Hi,

das Problem hatte ich auch mal! Ich hab das mit Doubblepuffering gelöst.

Code:

SCREEEN 12, , 0, 1
DO
  PRINT TIME$
  .........
  PCOPY 0, 1
LOOP


n.b.: verwende hier blos nicht input, dann wird die Schleife so lange angehalten, bis du eine Eingabe machst. Verwende lieber INKEY$!

[edit]:

Das sieht dann etwa so aus:

Code:

SCREEEN 12, , 0, 1
DO
  PRINT TIME$
  PCOPY 0, 1
  a$ = INKEY$
  IF a$ = ....
  ....
LOOP


[/edit]


Zuletzt bearbeitet von The real Agent D am 22.03.2006, 12:01, insgesamt 2-mal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
promille



Anmeldungsdatum: 19.07.2005
Beiträge: 18

BeitragVerfasst am: 22.03.2006, 11:56    Titel: Antworten mit Zitat

erst mal DANKE für die schnelle Antwort happy

aber so viel ahnung hab ich net von qbasic

erklär mal den befehl PCOPY




un weist du auch was zu meinen 2. Problem?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
The real Agent D



Anmeldungsdatum: 24.11.2005
Beiträge: 605
Wohnort: Hall i. T.

BeitragVerfasst am: 22.03.2006, 12:01    Titel: Antworten mit Zitat

Code:

SCREEN 12, , 0, 1


Du arbeitest auf der nicht sichtbaren Seite 0, während die Seite 1 angezeigt wird.

Code:

PCOPY 0, 1


Der Innhalt der Seite 0 wird in die Seite 1 übertragen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 22.03.2006, 12:35    Titel: Antworten mit Zitat

INPUT ist ein blockierender Befehl, da QBasic also kein multithreading kann kannst du nicht INPUT und was anderes gleichzeitig verwenden. Du müsstest dir einen eigenen INPUT-Ersatz schreiben..
_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 22.03.2006, 16:08    Titel: Antworten mit Zitat

Scherzkeks, unter QB gibt's den SCREEN 12 nicht mit mehreren Bildschirmseiten...
Das einzige, das was bringen könnte, ist
Code:

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

immer bevor du etwas auf den Bildschirm bringst. Das wartet auf den Bildschirmstrahlrücklauf.

Zum Thema Zeit anzeigen aus der MonsterFAQ: Link

/edit: Sorry, musste &H3DA heißen... peinlich

jb
_________________
Elektronik und Programmieren


Zuletzt bearbeitet von jb am 23.03.2006, 16:30, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
promille



Anmeldungsdatum: 19.07.2005
Beiträge: 18

BeitragVerfasst am: 22.03.2006, 17:44    Titel: Antworten mit Zitat

thx

aber die version mit wait &H3FA ... funktioniert nicht und das mit der Zeit in der ersten Zeile is auch net so des wahre, weil immer ganz links oben Zahlen stehen.


Naja..

hat noch jemand ne andere idee, wie man das flimmern des bildschirms weg bekommt?

Hängt ja eigentlich nur damit zusammen weil die Uhr ständig aktualisiert werden muss.

missbilligen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 22.03.2006, 18:39    Titel: Antworten mit Zitat

Zitat:
Kann QBasic mehrere Sachen gleichzeitig ausführen, also z.B. meine DO LOOP schleife mit der Uhr und gleichzeitig noch eine INPUT Eingabe?

Hier in diesem MonsterFag eintrag geht es genau um das Thema:
http://www.antonis.de/faq/qbmonfaq-Dateien/243931310.html

Edit:/
Hab mich nicht geachtet, jb hat den Link schon gepostet.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
The real Agent D



Anmeldungsdatum: 24.11.2005
Beiträge: 605
Wohnort: Hall i. T.

BeitragVerfasst am: 23.03.2006, 09:34    Titel: Antworten mit Zitat

jb hat Folgendes geschrieben:

Scherzkeks, unter QB gibt's den SCREEN 12 nicht mit mehreren Bildschirmseiten...


...ups peinlich

Wie währe es, Doublebuffering in einem anderen SCREEN Modus zu verwenden?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 23.03.2006, 09:36    Titel: Antworten mit Zitat

es wär kleiner happy
_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
dreael
Administrator


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

BeitragVerfasst am: 23.03.2006, 09:46    Titel: Antworten mit Zitat

Zum Titelthema:

http://www.dreael.ch/Deutsch/BASIC-Knowhow-Ecke/EreignisSchleife.html

Als Single-Task-Betriebssystem kennt MS-DOS keine Threads und Prozesse, deshalb muss man alles wie dort gezeigt programmieren.
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 23.03.2006, 16:32    Titel: Antworten mit Zitat

Eine andere Methode ist sicherlich das gefakte Multitcasting via ON TIMER GOSUB...

@ promille: Du könntest auch den SCREEN 9 nehmen, der hat zwei Bildschirmseiten.
Oder du nimmst ein Bibliothek wie die AK-Lib, und hast SVGA-Auflösungen lächeln

jb
_________________
Elektronik und Programmieren
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Lutz Ifer
Grillmeister


Anmeldungsdatum: 23.09.2005
Beiträge: 555

BeitragVerfasst am: 23.03.2006, 19:19    Titel: Antworten mit Zitat

Code:
screen 12
do
    locate 1,1 'links oben
    print time$ 'zeit anzeigen
    sleep 1000 'ACHTUNG!!! fb rechnet in millisekunden, nicht sekunden wie qb - HIER ist dein fehler.
loop until len(inkey$) 'oder sonst irgendeine abbruchbedingung


Gruß
Lutz böse Ifer
_________________
Wahnsinn ist nur die Antwort einer gesunden Psyche auf eine kranke Gesellschaft.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 23.03.2006, 19:48    Titel: Antworten mit Zitat

@Lutz Ifer
Du weisst schon, das wir hier in einem Unterforum von QBasic sind?
Also hier geht es um QBasic und nicht Freebasic.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Lutz Ifer
Grillmeister


Anmeldungsdatum: 23.09.2005
Beiträge: 555

BeitragVerfasst am: 24.03.2006, 11:03    Titel: Antworten mit Zitat

Ach zefix... Ich hatte mich schon gewundert, weil als Überschrift nur "Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Spezielle Fragen" dran steht. Auf der Hauptseite sieht man, dass es hier nur um QB geht.

Mea culpa, ich bin doof.
Lutz böse Ifer
_________________
Wahnsinn ist nur die Antwort einer gesunden Psyche auf eine kranke Gesellschaft.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 24.03.2006, 17:26    Titel: Antworten mit Zitat

Vielleicht sollte man denn Unter Foren eine andere Namen Struktur geben wie
(QB) Allgemeine Fragen
(QB) Spezielle Fragen
(FB) Allgemeine Fragen

Wobei es auch dann noch zu verwechslungen kommen kann.
(Ist mir ja auch schon passiert zwinkern)
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 -> Spezielle Fragen 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