Uhr mit Visualbasic programmieren
Wie kann ich......
Ich habe die Frage ob ich im Visualbasic ein Uhr Programieren kann.
Aber ich habe es bis her noch nicht geschaft .
Kann mir da einer Helfen???
PS:Es ist egal ob eine Digital oder Zeiger Uhr!!!
Gruss Fireplay
Ich habe die Frage ob ich im Visualbasic ein Uhr Programieren kann.
Aber ich habe es bis her noch nicht geschaft .
Kann mir da einer Helfen???
PS:Es ist egal ob eine Digital oder Zeiger Uhr!!!
Gruss Fireplay
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 8743
Url: https://administrator.de/contentid/8743
Ausgedruckt am: 23.11.2024 um 03:11 Uhr
10 Kommentare
Neuester Kommentar
Naja, selbstverständlich geht das.... die Frage ist, wie komplex das ganze sein soll. Ob die Uhr manuell gestellt wird, vom System ausgelesen oder sogar per Internet upgedatet wird.
Dann kommt dazu, ob du in .net oder Version 6 arbeitest, weil sich hier die Befehle etwas unterscheiden.
Ich gehe mal davon aus, daß du Version 6 hast.
Die einfachste digitale Uhr ist, indem du Labels nimmst. Ein Label für Stunden, ein Label für Minuten und eines für Sekunden.
Wenn die Form geöffnet wird, also initialsiert, dann läßt du mit dem time Befehl die Uhrzeit vom System auslesen. Entweder du ließt gleich Stunden Minuten Sekunden eigens aus, oder du manipulierst die Zeichenkette, die du erhältst und splittst diese dann in diese drei Werte. Diese drei Werte läßt du in das entsprechende Labelfeld schreiben.
Jetzt zeigt die Form die aktuelle Uhrzeit an. Jetzt muß die Uhr nur noch weiter zählen. Hier gibt es verschiedene Möglichkeiten. Die allereinfachste ist, wenn du den Zeitgeber von Visual Basic 6 nimmst. Den stellst du auf eine Sekunde und läßt dann das Ereignis ausführen.
Im Ereignis schreibst du einfach, daß das Label Sekunde um eins hoch gezählt wird. Natürlich ist der Labelwert ein string, also mußt du diesen als Zahl umwandel und dann um eins hochzählen. Bevor du den Wert zurückschreibst, überprüfst du mit einer IF Bedingung beispielsweise, ob die Zahl = 60 ist. Ist dies der Fall, läßt du die Zahl auf 0 setzen und setzt den Wert von der Minute um eines hoch, wie du es mit der Sekunde gemacht hast.
Die Sekunde läßt du dann ins Labelfeld zurückschreiben.
Jetzt überprüfst du gleich, ob die Minute = 60 ist, oder du machst das im Minutenlabel, hierfür gibt es das Ereignis, wenn sich etwas geändert hat. Beides geht.
Ebenso funktioniert es mit der Stunde, nur ist hier das Ende bei 24.
Dann kommt dazu, ob du in .net oder Version 6 arbeitest, weil sich hier die Befehle etwas unterscheiden.
Ich gehe mal davon aus, daß du Version 6 hast.
Die einfachste digitale Uhr ist, indem du Labels nimmst. Ein Label für Stunden, ein Label für Minuten und eines für Sekunden.
Wenn die Form geöffnet wird, also initialsiert, dann läßt du mit dem time Befehl die Uhrzeit vom System auslesen. Entweder du ließt gleich Stunden Minuten Sekunden eigens aus, oder du manipulierst die Zeichenkette, die du erhältst und splittst diese dann in diese drei Werte. Diese drei Werte läßt du in das entsprechende Labelfeld schreiben.
Jetzt zeigt die Form die aktuelle Uhrzeit an. Jetzt muß die Uhr nur noch weiter zählen. Hier gibt es verschiedene Möglichkeiten. Die allereinfachste ist, wenn du den Zeitgeber von Visual Basic 6 nimmst. Den stellst du auf eine Sekunde und läßt dann das Ereignis ausführen.
Im Ereignis schreibst du einfach, daß das Label Sekunde um eins hoch gezählt wird. Natürlich ist der Labelwert ein string, also mußt du diesen als Zahl umwandel und dann um eins hochzählen. Bevor du den Wert zurückschreibst, überprüfst du mit einer IF Bedingung beispielsweise, ob die Zahl = 60 ist. Ist dies der Fall, läßt du die Zahl auf 0 setzen und setzt den Wert von der Minute um eines hoch, wie du es mit der Sekunde gemacht hast.
Die Sekunde läßt du dann ins Labelfeld zurückschreiben.
Jetzt überprüfst du gleich, ob die Minute = 60 ist, oder du machst das im Minutenlabel, hierfür gibt es das Ereignis, wenn sich etwas geändert hat. Beides geht.
Ebenso funktioniert es mit der Stunde, nur ist hier das Ende bei 24.
@alle Programmierer:
JA, es geht schöner, aber es geht um das Verständnis !!!!
@author:
Ich habe dir mal ein Beispiel gebaut in Realbasic... wenn du Visual Basic hsat, kannst du kostenlos wechseln:
http://www.heise.de/newsticker/meldung/57838
Quellcode vom Timer:
JA, es geht schöner, aber es geht um das Verständnis !!!!
@author:
Ich habe dir mal ein Beispiel gebaut in Realbasic... wenn du Visual Basic hsat, kannst du kostenlos wechseln:
http://www.heise.de/newsticker/meldung/57838
Quellcode vom Timer:
rem Dimensionierung von der Variable x für die sekunden
rem Dimensionierung von der Variable y für die Minuten
rem Dimensionierung von der Variable z für die Stunden
dim x as integer
dim y as integer
dim z as integer
rem Abfragen der Variable x und hochsetzen des Wertes
rem Ist die Variable = 60, dann wird diese auf 0 gesetzt.
x = val(editSekunde.text)
x = x +1
if x = 60 then
x = 0
rem Abfragen der Variable Minuten,
rem weil ja eine Minute vergangen ist, muß der Wert
rem um eins erhöht werden.
y = val(editMinute.text)
y = y +1
REM Überprüfen, ob eine Stunde vergangen ist.
REM Dann wert Minute zurück auf 0 und den
REM Stundenwert erhöhen
if y = 60 then
y = 0
REM Wert der Stunde um eines erhöhen.
z = val(editStunde.text)
z = z +1
REM Überprüfen, ob ein Tag vergangen ist.
if z = 24 then
z = 0
end if
REM Stunde Schreiben
if y < 10 then
editStunde.text = "0" + str(z)
else
editStunde.text = str(z)
end if
end if
REM Schreiben des Wertes Minute, Erklärung
REM unten bei Sekunde
if y < 10 then
editMinute.text = "0" + str(y)
else
editMinute.text = str(y)
end if
end if
rem Hier wird überprüft, ob die Sekunde < 10 ist,
rem wenn das so ist, dann wird einfach eine 0 davor
rem geschrieben, damit dies schöner aussieht. 01.. 02
if x < 10 then
editSekunde.text = "0" + str(x)
else
editSekunde.text = str(x)
end if
Das Beispiel kannst du im Prinzip fast 1:1 nach Visual Basic übertragen. Visual Basic 6 habe ich nur bereits eingemottet und ist in der Packung im Schrank... für so kleine Exedateien habe ich Realbasic. Ansonsten .net......
Die Uhr fängt in diesem Beispiel um 0 Uhr an.... wenn die aktuelle Uhrzeit noch angezeigt werden soll, dann mußt du diese einfach beim initialisieren der Form noch vom System auslesen.
Die Uhr fängt in diesem Beispiel um 0 Uhr an.... wenn die aktuelle Uhrzeit noch angezeigt werden soll, dann mußt du diese einfach beim initialisieren der Form noch vom System auslesen.
@fireplay:
wie wäre es mit fairplay ???? eine kurze Rückmeldung wäre nett gewesen, wenn man sich schon die Arbeit macht....
wie wäre es mit fairplay ???? eine kurze Rückmeldung wäre nett gewesen, wenn man sich schon die Arbeit macht....
1. Lade dir Realbasic von der angegeben Seite herunter
2. Öffne den oben angebenen Quellcode als Download
3. Schau dir an wie es funktioniert, dann verstehst du das auch....
4. Übernehme den Quellcode der hier steht mit Copy und Paste nach Visual Basic. Erstelle die Steuerelemente und ändere in zwei Minuten einfach dann noch den Quellcode ab, so daß es paßt.... (Steuerelemente Namen müssen richtig sein etc....)
2. Öffne den oben angebenen Quellcode als Download
3. Schau dir an wie es funktioniert, dann verstehst du das auch....
4. Übernehme den Quellcode der hier steht mit Copy und Paste nach Visual Basic. Erstelle die Steuerelemente und ändere in zwei Minuten einfach dann noch den Quellcode ab, so daß es paßt.... (Steuerelemente Namen müssen richtig sein etc....)
Starte VB, einfach ein neues Projeckt (Standard exe)
1. auf Form1: ein Label setzten ( wo es dir passt : -)) )
das Label hat nun den namen : Label1
2. setzte einen Timer auf Form1 : geh auf Timer Eigenschaften Recht, bei "Interval: 1000" setzen.
Doppelklick auf Timer :
das selbe kannst du auch mit Datum machen, statt :
aber, hier kannst du es downloaden:
also nichts besonderes 1 Zeile...code...
bis dann HF
1. auf Form1: ein Label setzten ( wo es dir passt : -)) )
das Label hat nun den namen : Label1
2. setzte einen Timer auf Form1 : geh auf Timer Eigenschaften Recht, bei "Interval: 1000" setzen.
Doppelklick auf Timer :
label1.capation = time
das selbe kannst du auch mit Datum machen, statt :
"label1.capation = time" nimmst du einfach "label1.capation = date"
aber, hier kannst du es downloaden:
also nichts besonderes 1 Zeile...code...
bis dann HF