AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Sekunden, Minuten, Stunden Rechner

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

Registriert seit: 22. Mär 2017
Ort: bei Flensburg
358 Beiträge
 
FreePascal / Lazarus
 
#21

AW: Sekunden, Minuten, Stunden Rechner

  Alt 10. Mär 2020, 10:35
Daran habe ich auch gedacht Moombas allerdings wollte ich ihn auch die Freiheit geben in Minuten oder in Sekunden zu schreiben.
Kann er doch, es wird nur beim Verlassen des Feldes entsprechend umgerechnet.



Mach es wirklich im Onexit oder prüfe auf ein leeres Feld (dann nichts machen).

Wenn beim Onchange das Feld leer ist, kann er nichts umwandeln und läuft auf einen Fehler ('' <> 0).

Zitat:
ShellExecute(0, nil, 'cmd.exe', '/k shutdown -s -f -t ' + edit3.text + ' & exit', nil, SW_SHOWNORMAL);
Der Weg ist das Ziel aber man sollte auf dem Weg niemals das Ziel aus den Augen verlieren.

Geändert von Moombas (10. Mär 2020 um 10:43 Uhr)
  Mit Zitat antworten Zitat
FG53

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

AW: Sekunden, Minuten, Stunden Rechner

  Alt 10. Mär 2020, 10:46
Moombas danke wieder für deine schnelle Antwort. Allerdings kriege ich einen fehler bei deinem verbesserten Code.

Incompatible types: 'String' and 'PAnsiChar'
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
35.458 Beiträge
 
Delphi 10.3 Rio
 
#23

AW: Sekunden, Minuten, Stunden Rechner

  Alt 10. Mär 2020, 10:47
mal ein kleiner Exkurs
Delphi-Quellcode:
// nur auftrennen
// es muß überall am Ende mindestens eine Ziffer drinstehen
// MaskEdit.EditMask = '09:009:009;1; '
i := StrToInt(Copy(MaskEdit.Text, 1, 2)) * 60 * 60
   + StrToInt(Copy(MaskEdit.Text, 4, 3)) * 60
   + StrToInt(Copy(MaskEdit.Text, 8, 3));

// und nun inkl. Fehl-/Leereingaben
// Felder können leer bleiben und Zahlen müssen nicht am Ende stehen (hier mit '0'+Trim)
// MaskEdit.EditMask = '##:###:###;1; '
i := StrToInt('0' + Trim(Copy(MaskEdit.Text, 1, 2))) * 60 * 60
   + StrToInt('0' + Trim(Copy(MaskEdit.Text, 4, 3))) * 60
   + StrToInt('0' + Trim(Copy(MaskEdit.Text, 8, 3)));

// und nochmal in "modern" ... k.A. warum es kein Append/Add gibtm für das '0'+
i := ('0' + MaskEdit.Text.Substring(0, 2).Trim).ToInteger * 60 * 60
   + ('0' + MaskEdit.Text.Substring(3, 3).Trim).ToInteger * 60
   + ('0' + MaskEdit.Text.Substring(7, 3).Trim).ToInteger;

// und wieder zusammen
MaskEdit.Text := Format('%2d:%3d:%3d', [i div 60 div 60, i div 60 mod 60, i mod 60]);
Delphi-Quellcode:
// und wieder zusammen, falls es Einzeledits waren, ohne vorher Copy/Substring
Edit1.Text := IntToStr(i div 60 div 60);
Edit2.Text := IntToStr(i div 60 mod 60);
Edit3.Text := IntToStr(i mod 60);

// lol
Edit1.Text := (i div 60 div 60).ToString;
Edit2.Text := (i div 60 mod 60).ToString;
Edit3.Text := (i mod 60).ToString;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014

Geändert von himitsu (10. Mär 2020 um 10:50 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Moombas
Moombas

Registriert seit: 22. Mär 2017
Ort: bei Flensburg
358 Beiträge
 
FreePascal / Lazarus
 
#24

AW: Sekunden, Minuten, Stunden Rechner

  Alt 10. Mär 2020, 10:50
Müsste so gehen. Sry, hatte das mit dem Char vorhin vergessen^^

Zitat:
shellexecute(0, nil, 'cmd.exe', pchar('/k shutdown -s -f -t ' + edit3.text + ' & exit'), nil, sw_shownormal);
Der Weg ist das Ziel aber man sollte auf dem Weg niemals das Ziel aus den Augen verlieren.
  Mit Zitat antworten Zitat
FG53

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

AW: Sekunden, Minuten, Stunden Rechner

  Alt 10. Mär 2020, 10:58
Danke Moombas . Damit hab ich alles was ich brauchte danke an alle die mir dabei geholfen haben.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
35.458 Beiträge
 
Delphi 10.3 Rio
 
#26

AW: Sekunden, Minuten, Stunden Rechner

  Alt 10. Mär 2020, 11:35
Warum cmd /K und exit , anstatt dem richtigen cmd /C ?

und die shutdown.exe kann man auch direkt aufrufen,
mit dem Vorteil, dass man auch dessen ExitCode (ErrorLevel) im Programm abfragen kann. (MSDN-Library durchsuchenCreateProcess)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014

Geändert von himitsu (10. Mär 2020 um 12:11 Uhr)
  Mit Zitat antworten Zitat
FG53

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

AW: Sekunden, Minuten, Stunden Rechner

  Alt 10. Mär 2020, 11:42
Das ist mir gar nicht aufgefallen danke dir Himitsu werde das korigieren.
  Mit Zitat antworten Zitat
Alt 10. Mär 2020, 17:58     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
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
7.616 Beiträge
 
Delphi XE4 Professional
 
#28

AW: Sekunden, Minuten, Stunden Rechner

  Alt 11. Mär 2020, 06:59
Hallo,
ich würde 3 RadioButtons nehmen,
die kommen vor die 3 Edits.
Und der RadioButton, der ausgewählt ist, bestimmt den Eingabe-Editor.
Die jeweils anderen beiden Editoren werden Disabled oder ReadOnly gesetzt.

Schon spart man sich eine Menge Logik.
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von Moombas
Moombas

Registriert seit: 22. Mär 2017
Ort: bei Flensburg
358 Beiträge
 
FreePascal / Lazarus
 
#29

AW: Sekunden, Minuten, Stunden Rechner

  Alt 11. Mär 2020, 07:54
Hallo,
ich würde 3 RadioButtons nehmen,
die kommen vor die 3 Edits.
Und der RadioButton, der ausgewählt ist, bestimmt den Eingabe-Editor.
Die jeweils anderen beiden Editoren werden Disabled oder ReadOnly gesetzt.

Schon spart man sich eine Menge Logik.
Dann brauchst du nur ein Edit!
Der Radiobutton bestimmt wie die Zahl interpretiert werden soll (H, M, S) und im Editfeld gibt man sie ein.
Und beim Verlassen dessen wird es entsprechend umgesetzt.
Aber (von der Nutzereingabe und GUI betrachtet) es wäre für den Benutzer ein (minimaler) Mehraufwand bei der Eingabe.
Auch wenn es nur 1 Klick mehr ist, versuche ich dem Benutzer jeden Arbeitsweg so gut wie möglich zu verkürzen/vereinfachen und die GUI so schlank wie möglich zu halten (Ja, 3 Radiobuttons (als Radiobuttongroup) + 1 Editfeld sind in der Summe in der GUI (je nach Dimensionierung und Anordnung) weniger als 3 Editfelder.).
Wobei ich immer folgendes als Leitfaden nehme: Funktion > Arbeitsschritte > GUI > kurze/einfache Programmierlogik

Und ob man sich dadurch wirklich so viel Logik spart, bin ich mir gerade nicht mal sicher.
Bei deiner Variante müsstest du (ggf.) 3 unterschiedliche Funktionen schreiben, bei der eben angesprochenen Variante nur 1, halt nur mit der Prüfung der Eingabefelder.
Der Weg ist das Ziel aber man sollte auf dem Weg niemals das Ziel aus den Augen verlieren.

Geändert von Moombas (11. Mär 2020 um 08:04 Uhr)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 12:10 Uhr.
Powered by vBulletin® Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf