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 3 von 3     123   
Benutzerbild von Moombas
Moombas

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

AW: Sekunden, Minuten, Stunden Rechner

  Alt 10. Mär 2020, 11: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 11: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, 11: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
44.053 Beiträge
 
Delphi 12 Athens
 
#23

AW: Sekunden, Minuten, Stunden Rechner

  Alt 10. Mär 2020, 11: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;
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

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

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

AW: Sekunden, Minuten, Stunden Rechner

  Alt 10. Mär 2020, 11: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, 11: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
44.053 Beiträge
 
Delphi 12 Athens
 
#26

AW: Sekunden, Minuten, Stunden Rechner

  Alt 10. Mär 2020, 12: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)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (10. Mär 2020 um 13: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, 12:42
Das ist mir gar nicht aufgefallen danke dir Himitsu werde das korigieren.
  Mit Zitat antworten Zitat
Alt 10. Mär 2020, 18: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
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#28

AW: Sekunden, Minuten, Stunden Rechner

  Alt 11. Mär 2020, 07: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
525 Beiträge
 
FreePascal / Lazarus
 
#29

AW: Sekunden, Minuten, Stunden Rechner

  Alt 11. Mär 2020, 08: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 09:04 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


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