![]() |
Sekunden, Minuten, Stunden Rechner
Hallo,
ich bin ein ziemlicher Anfänger und das schon seit langem :lol:. In einem Programm das ich aktuelle versuche zu Schreiben, spreche ich mit shellexecute cmd an und brauche dafür eine sekundenangabe. Allerdings möchte ich dem nutzer die möglichkeit geben in Sekunden, Minuten oder Stunden die Eingabe zu tätigen. Ich habe drei edit felder in dem der Nutzer jeweils Sekunden Minuten oder Stunden eingeben kann welches dann das Programm umrechnet. Beispiel: Nutzer gibt in edit1 '1' Stunde ein, edit2 '60' Minuten wird automatisch gerechnet und edit3 '3600' sekunden wird automatisch gerechnet. (Was aber auch sein muss ist das wenn der nutzer '3600' Sekunden eingibt das der rechner dann die anderen 2 edit felder befüllt.) Daraufhin möchte ich die Sekunden auslesen und in meinen anderen befehl übernehmen. (Das sollte kein Problem sein, hoffentlich :lol:) Ich danke schomal im voraus für eure Hilfe. LG - FG |
AW: Sekunden, Minuten, Stunden Rechner
|
AW: Sekunden, Minuten, Stunden Rechner
Danke für eure Antworten, aber um die Wahrheit zu sagen habe ich habe ich bei den Links nicht richtig durchgeblickt. Währe es möglich das mir jemand bisschen unter die Arme greift mit einem Beispiel Code, denn wie gesagt ich bin nicht sehr gut. :lol:
|
AW: Sekunden, Minuten, Stunden Rechner
Oder ganz bling im OnExit der 3 Edits,
erstmal alles zusammenrechnen, dann wieder "korrekt" die Stungen/Minuten/Sekunden trennen, und das Ergebnis in die 3 Edits zurückschreiben. OnExit statt OnChange, da bei Eingabe "falsche" Werte auftreten dürfen, damit es nicht immer sofort bei jedem Tastendruck knallt. |
AW: Sekunden, Minuten, Stunden Rechner
Zitat:
Zur Aufgabe: Sollen auch Dezimalzahlen eintragbar sein? Eine Zahl durch 60 teilen oder mit 60 zu multiplizieren, ist aber nicht das Problem oder? Ich meine, was würdest Du selbst machen, wenn Du eines der Felder befüllen müsstest, nachdem ein Anwender dort eine Zahl eingetragen hat. |
AW: Sekunden, Minuten, Stunden Rechner
Ich habe das Programmieren weder schulisch noch systematisch gelernt. Delphi war auf meinem Pc drauf und ich habe code für code gelernt wie ich es gebraucht habe. Deswegen fehlen mir viele grundliegende Sachen. Meine Wege sind meistens viel länger als sie benötigt sind. Aber was soll ich sagen meistens funktionieren sie. :lol:
Das mit dem onexit ist auch meine idee gewesen aber die brauchen ja gar nicht erst addiert und wieder getrennt zu werden. Denn es soll kein wert sein der sich aus den 3 feldern summiert sondern ein wert der in verschiedenen angeben in den 3 feldern ausgegeben wird. |
AW: Sekunden, Minuten, Stunden Rechner
Zitat:
|
AW: Sekunden, Minuten, Stunden Rechner
Die Links schießen mMn über das Ziel hinaus. Ein Beispiel aus der Realität sagt, daß ein Spielfilm 100 Minuten dauern kann. Was du brauchst ist zweierlei: ein Ereignis, daß Dir sagt, wenn die Eingabe in einem der Felder getätigt wurde, und eine Formel, die von einem der Werte in die jeweils anderen beiden umrechnet.
Ersteres macht Delphi von Haus aus und Du könntest dazu zB das ![]() ![]() Die Rechnerei ist simpel, wenn Du weißt, wieviele Minuten eine Stunde hat, und wieviele Sekunden in einer Minute stecken (Spoiler: es ist beides mal die gleiche Zahl). Lies also nach wie man einem TEdit ein OnChange Ereignis zuweist, und lies nach, wie man einem TEdit.Text einen neuen Inhalt gibt. Dann hast Du vermutlich nach etwas Denkarbeit drei Methoden und irgendwas läuft mächtig schief, weil *Trommelwirbel* OnChange ständig befeuert wird.:-D Du mußt also wissen, welches Feld tatsächlich vom Anwender verändert wurde, und welches aus der Berechnung heraus "automatisch". Dazu kannst Du zB erkennen, in welches Feld der Anwender zur Eingabe gegangen ist, und zwar mit ![]() Sherlock |
AW: Sekunden, Minuten, Stunden Rechner
Sherlock, ich danke dir für deine Antwort. Das hilft mir sehr weiter. Ich versuche das mal und gebe später wieder bescheid, danke nochmal.
|
AW: Sekunden, Minuten, Stunden Rechner
Also ich würde schon empfehlen direkt TDateTime als Basis-Zielspeicher zu nehmen,
und dann wie himitsu vorgeschlagen hat - die drei Edits extrahieren und mit EncodeDateTime und z.B. in MilliSeconds umrechnen, - daraus den Zielspeicher zusammenrechnen, ![]() - danach wieder aus dem TDateTime die berechneten Daten extrahieren mit DecodeDateTime - die OnChange Events kurz abzuschalten, - und die Edits mit den Ergebnissen restaurieren, - dann die OnChange Events wieder einschalten Der Vorteil von TDateTime wäre, das es dann auch mit Tagen, Monaten usw. klarkommen könnte, und die ganzen Utils drumherum ziemlich robust und getestet sind. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:12 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz