AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Sekunden, Minuten, Stunden Rechner

Ein Thema von FG53 · begonnen am 9. Mär 2020 · letzter Beitrag vom 11. Mär 2020
Antwort Antwort
Seite 1 von 3  1 23      
FG53

Registriert seit: 29. Mai 2015
14 Beiträge
 
#1

Sekunden, Minuten, Stunden Rechner

  Alt 9. Mär 2020, 13:39
Hallo,

ich bin ein ziemlicher Anfänger und das schon seit langem .

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 )

Ich danke schomal im voraus für eure Hilfe.

LG - FG
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.087 Beiträge
 
Delphi 12 Athens
 
#2

AW: Sekunden, Minuten, Stunden Rechner

  Alt 9. Mär 2020, 13:48
Dafür gäbe es sowas oder das, zusätzliche Rechenlogik muss man aber noch drumbauen, mit 3600 und so.

Jedenfalls könntest Du man in den DateUtils stöbern, was da für Dich dabei ist.
  Mit Zitat antworten Zitat
Alt 9. Mär 2020, 13:54     Erstellt von Frühlingsrolle
Dieser Beitrag wurde von Daniel gelöscht. - Grund: Verdacht auf SPAM und den damit verbundenen verschwenderischen Umgang von wertvollen Bits und Bytes
FG53

Registriert seit: 29. Mai 2015
14 Beiträge
 
#3

AW: Sekunden, Minuten, Stunden Rechner

  Alt 9. Mär 2020, 14:02
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.
  Mit Zitat antworten Zitat
Alt 9. Mär 2020, 14:13     Erstellt von Frühlingsrolle
Dieser Beitrag wurde von Daniel gelöscht. - Grund: Verdacht auf SPAM und den damit verbundenen verschwenderischen Umgang von wertvollen Bits und Bytes
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.053 Beiträge
 
Delphi 12 Athens
 
#4

AW: Sekunden, Minuten, Stunden Rechner

  Alt 9. Mär 2020, 14:19
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.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#5

AW: Sekunden, Minuten, Stunden Rechner

  Alt 9. Mär 2020, 14:20
Noch besser wäre, du sorgst dafür, dass die Eingabefelder für Minuten und Sekunden den Wert 59 niemals überschreiten.
Wieso, genau das will er doch nicht! Ich glaube es geht um Anwenderkomfort, statt um Programmiererkomfort. Und selbst wenn er es wollte: Ist Software nicht dafür da, lästige Denkarbeit zu vermeiden?

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.
Gruß, Jo
  Mit Zitat antworten Zitat
FG53

Registriert seit: 29. Mai 2015
14 Beiträge
 
#6

AW: Sekunden, Minuten, Stunden Rechner

  Alt 9. Mär 2020, 14:21
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.

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.
  Mit Zitat antworten Zitat
FG53

Registriert seit: 29. Mai 2015
14 Beiträge
 
#7

AW: Sekunden, Minuten, Stunden Rechner

  Alt 9. Mär 2020, 14:23
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.
Dezimalzahlen sind kein muss. Die meisten entragungen werden wahrscheinlich nur ganze Zahlen sein.
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.798 Beiträge
 
Delphi 12 Athens
 
#8

AW: Sekunden, Minuten, Stunden Rechner

  Alt 9. Mär 2020, 14:24
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 Delphi-Referenz durchsuchenTEdit.OnChange Ereignis der TEdit Felder nehmen. Beachte bitte, daß Die gleich folgende Rechnerei in die Hose geht, wenn Dein Anwender etwas anderes als Zahlen eingibt!! Delphi-Referenz durchsuchenVCL.StdCtrls.TEdit.NumbersOnly hilft bei VCL-Anwendungen.
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.
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 Delphi-Referenz durchsuchenTEdit.OnEnter. Dann darfst Du die Felder, die nicht gerade bearbeitet werden nicht auf das OnChange reagieren lassen, und fertig.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
FG53

Registriert seit: 29. Mai 2015
14 Beiträge
 
#9

AW: Sekunden, Minuten, Stunden Rechner

  Alt 9. Mär 2020, 14:34
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.
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.087 Beiträge
 
Delphi 12 Athens
 
#10

AW: Sekunden, Minuten, Stunden Rechner

  Alt 9. Mär 2020, 14:58
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, http://www.delphibasics.co.uk/RTL.as...IncMillisecond
- 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.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:49 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz