Einzelnen Beitrag anzeigen

Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.557 Beiträge
 
Delphi 10.4 Sydney
 
#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
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat