|
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
nemored
Anmeldungsdatum: 22.02.2007 Beiträge: 4599 Wohnort: ~/
|
Verfasst am: 03.03.2017, 12:42 Titel: Kleines Countdown-Programm |
|
|
Zwar keine Frage zu FB, aber ein Projekt ist es auch nicht wirklich, darum bringe ich es mal hier unter. Da ich auf die Schnelle ein kleines Programm gebraucht habe, dass mir regelmäßig signalisiert, wann fünf Minuten vorbei sind, habe ich mir den Timer zusammengeschrieben.
Er zählt beim Start von 05:00 Minuten abwärts bis 00:00 und kann dann mit Tastendruck neu gestartet werden. Beenden ist jederzeit mit ESC oder Schließen-Button möglich. Die Fenstergröße ist bewusst klein gehalten, damit ich das Programm "always top" in die Ecke schieben kann.
Die Countdown-Zeit ist auf den Minuten-Bereich beschränkt, und Anpassungen sind aktuell nur über den Quellcode möglich (vielleicht habe ich ja irgendwann mal Lust, da noch was zu basteln, aber vorerst erfüllt es seinen Zweck).
Code: | ' Der Timer zählt von der angegebenen Zeit aus rückwärts bis 0. Danach kann er mit Tastendruck neu gestartet werden.
' Zum Beenden bitte die ESC-Taste oder den Schließen-Button des Grafikfensters betätigen.
#include "vbcompat.bi"
dim as string taste ' zur Tastaturabfrage; ESC / Schließen-Button beendet das Programm
dim as double startZeit ' wird bei jedem Durchlauf mit TIMER abgeglichen
dim as integer vergangen ' Anzahl der aktuell vergangenen Sekunden
dim as integer anzeige ' angezeigter Zeitwert, in Sekunden
dim as integer dauer = 300 ' Anzahl der Laufzeit in Sekunden
dim as integer blinkzeit = 10 ' Anzahl der Sekunden, in denen am Ende die Anzeige blinken soll
screenres 120, 48
windowtitle "Timer"
width 15, 3
color 7
do
startZeit = timer
vergangen = -1
do
sleep 1
if timer - startZeit > vergangen+1 then
vergangen = int(timer - startZeit)
anzeige = dauer - vergangen
if anzeige < blinkzeit then cls : sleep 200
locate 2, 5
print iif(anzeige < 600, " 0", " ") & anzeige\60; ":" & iif((anzeige mod 60) < 10, "0", "") & anzeige mod 60 & " "
end if
taste = inkey
if taste = chr(27) or taste = chr(255, 107) then exit do, do
loop until timer > startZeit + dauer
locate 2, 5
color 12
print "FERTIG!"
beep
color 7
do
taste = inkey
sleep 1
loop until len(taste)
loop until taste = chr(27) or taste = chr(255, 107) |
_________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
|
dreael Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 2508 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 03.03.2017, 21:42 Titel: |
|
|
Für das unter
https://www.youtube.com/watch?v=P-Na2qyB8Ok
gezeigte Anzeigesystem im Hintergrund, welches übrigens auch FreeBasic ist, hatte ich so etwas auch einmal geschrieben, weil es beim dortigen öffentlichen Vereinsanlass einen Rückwärts-Counter für ein bestimmtes Spiel brauchte.
Bei Bedarf könnte ich einmal die Quellcodes verfügbar machen. Das Ganze war dort so aufgebaut, dass im Vordergrund eine mittels VBScript gesteuerte PowerPoint-Präsentation lief, welches die verschiedenen Anzeige-Kulissen als FreeBasic-Modul aufgerufen hat, z.B. der dortige Zähler für durchs Gitter hindurch hochgehievte Gegenstände ist so ein Modul (von einem Vereinsmitglied auf der Tastatur des Beamer-Notebooks bedient übrigens. Raspberry Pi-Freaks von Euch würden wahrscheinlich am liebsten noch eine Lichtschranke implementieren...). _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
|
|
|
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.
|
|