AGB  ·  Datenschutz  ·  Impressum  







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

Industrieminuten

Ein Thema von StepByStep · begonnen am 22. Jan 2015 · letzter Beitrag vom 23. Jan 2015
Antwort Antwort
Seite 3 von 3     123   
Benutzerbild von himitsu
himitsu
Online

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

AW: Industrieminuten

  Alt 22. Jan 2015, 13:26
result := SimpleRoundTo((DT2 - DT1)*HoursPerDay, -2); Danke Uwe, das funktioniert jetzt wunderbar.
Delphi-Referenz durchsuchenHourSpan (man achte auf den Result-Typ)
HourSpan + RountTo oder HourSpan + RountTo+FloatToStr oder Format oder FormatFloat oder ...

Ein kleines - dokumentiert den Code nicht so schön wie z.B. HourSpan.


machte das aufaddieren von Arbeitszeiten beim erstellen von Arbeitsplänen
Ein schweizer Uhrenhersteller wollte mal, gegen Ende des letzten Jahrtausends, 'ne Uhr(zeit) mit 10 Stunden á 100 Minuten pro Tag einführen ... schade daß sich das nicht durchsetzte.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.443 Beiträge
 
Delphi 12 Athens
 
#22

AW: Industrieminuten

  Alt 22. Jan 2015, 13:32
Ein kleines - dokumentiert den Code nicht so schön wie z.B. HourSpan.
Wenn dieses hier
Zitat von System.DateUtils.HourSpan:
HourSpan always returns a positive result and therefore the parameter values are interchangeable.
keine Einschränkung bedeutet oder sogar gewollt ist, dann würde ich auch HourSpan empfehlen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
BadenPower

Registriert seit: 17. Jun 2009
616 Beiträge
 
#23

AW: Industrieminuten

  Alt 22. Jan 2015, 15:08
Ein schweizer Uhrenhersteller wollte mal, gegen Ende des letzten Jahrtausends, 'ne Uhr(zeit) mit 10 Stunden á 100 Minuten pro Tag einführen ... schade daß sich das nicht durchsetzte.
Und die Arbeitsverträge seiner Angestellten wären dann mit 8 Stunden pro Arbeitstag unverändert weitergelaufen.

Nette Idee!
Programmieren ist die Kunst aus Nullen und Einsen etwas sinnvollen zu gestalten.
Der bessere Künstler ist allerdings der Anwender, denn dieser findet Fehler, welche sich der Programmierer nicht vorstellen konnte.
  Mit Zitat antworten Zitat
UliBru

Registriert seit: 10. Mai 2010
155 Beiträge
 
Delphi 11 Alexandria
 
#24

Welcher Magier kennt alle Konstanten?

  Alt 22. Jan 2015, 16:28
UPDATE Aber bitte keine MagicValues im Code benutzen sondern Delphi-Referenz durchsuchenSystem.SysUtils.HoursPerDay
Wie es der Titel schon andeutet: woher weiss ich welche Konstante in irgendeiner der gefühlt tausend Delphi-Units definiert und verfügbar sind? Muss ich mir dazu alles vorher anschauen und dann auch merken? Wem ist das noch nicht passiert, dass er etwas für sich erfindet und dann feststellt, dass es das in der Bibliothek schon gibt. Oder besser, in den Bibliotheken und damit also noch mehrfach.

Ich verstehe zwar, dass es besser ist, z.B.
Delphi-Quellcode:
const
  StdProTag = 24;
zu verwenden als die Zahl 24 irgendwo in einer Funktion in einer Formel auftauchen zu lassen.
Aber muss man deshalb gleich immer die Monsterausdrücke wie System.SysUtils.HoursPerDay bemühen? Damit eindeutig ausgeschlossen wird, dass der Compiler irgendwo eine Definition HoursPerDay = 25 findet? Dann wäre doch die Definition eigener Konstanten sinnvoller, da weiss man was man hat. Oder?
Er wollte so richtig in Delphi einsteigen. Nun steckt er ganz tief drin ...
  Mit Zitat antworten Zitat
Mikkey

Registriert seit: 5. Aug 2013
265 Beiträge
 
#25

AW: Welcher Magier kennt alle Konstanten?

  Alt 22. Jan 2015, 16:38
Ich kenne die auch nicht, und mache das auch so

Delphi-Quellcode:
const
  StdProTag = 24;
Wenn ich dann irgendwann darauf stoße, dass es eine solche vorgefertigte Konstante in den Delphi-Tiefen gibt, mache ich daraus

Delphi-Quellcode:
const
  StdProTag = System.SysUtils.HoursPerDay;
... und gut is.

Allerdings ist das Verwenden der Tatsache, dass ein TDateTime ein double ist, genauso magisch, wie die 24. Deshalb halte ich eine solche Multiplikation für schlechten Code. Da es genügend Funktionen gibt, die fast alle denkbaren Anforderungen abdecken, brauchts so etwas nicht.

Wenn es doch so eine Anforderung geben sollte, kann man die benötigte Funktion entsprechend selbst erstellen.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

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

AW: Welcher Magier kennt alle Konstanten?

  Alt 22. Jan 2015, 17:01
woher weiss ich welche Konstante in irgendeiner der gefühlt tausend Delphi-Units definiert und verfügbar sind? Muss ich mir dazu alles vorher anschauen und dann auch merken?
Mit der Zeit lernt man, wo man für bestimmte Aufgaben meistens etwas findet und wo es sich wie zu suchen lohnt.

Wenn man weiß, daß es um einen Datumswert geht, braucht man nur noch un 2-3 Units zu suchen.
DateUtils und dort wo früher das Zeug rumgammelte, also vorallem die SysUtils.

Und die Arbeitsverträge seiner Angestellten wären dann mit 8 Stunden pro Arbeitstag unverändert weitergelaufen.
Eine Woche mit 10 Tagen ... und schon hast du dafür 5 Tage lang Wochenende.
Und bei 4 Wochen Urlaub im Jahr.......
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
StepByStep

Registriert seit: 12. Nov 2014
Ort: Schleswig-Holstein
61 Beiträge
 
Delphi 7 Professional
 
#27

AW: Industrieminuten

  Alt 23. Jan 2015, 12:19
Also nachdem das Rechnen nun einwandfrei funktioniert, möchte ich gerne eine TObjectlist in einem StringGrid ausgeben - das funktioniert bereits!
Es geht mir nur darum, dass ich in dieser Liste ein Kommentar habe (string) und ich dieses dort einfügen möchte.

Ich habe gelesen, dass man wohl keine Zeilenumbrüche in StringGrids machen kann, ist das richtig?
Ansonsten möchte ich nämlich so vorgehen (bisschen Pseudocode):

Code:
wenn Liste[i].DerString > Liste[i].DerString[60] (also länger als 60 Zeichen) dann
iZeichen := 60;
wiederhole:
wenn Liste[i].DerString[iZeichen] ungleich '' ist dann
iZeichen -1
ansonsten
mache dort Zeilenumbruch
bis Leerzeichen kommt
schreibe String in StringGrid mit Zeilenumbruch
Soweit meine Idee...
Jan
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.443 Beiträge
 
Delphi 12 Athens
 
#28

AW: Industrieminuten

  Alt 23. Jan 2015, 12:27
Also nachdem das Rechnen nun einwandfrei funktioniert, möchte ich gerne eine TObjectlist in einem StringGrid ausgeben
Dann empfehle ich dir, dafür einen eigenen Thread aufzumachen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#29

AW: Welcher Magier kennt alle Konstanten?

  Alt 23. Jan 2015, 17:33
UPDATE Aber bitte keine MagicValues im Code benutzen sondern Delphi-Referenz durchsuchenSystem.SysUtils.HoursPerDay
Wie es der Titel schon andeutet: woher weiss ich welche Konstante in irgendeiner der gefühlt tausend Delphi-Units definiert und verfügbar sind? Muss ich mir dazu alles vorher anschauen und dann auch merken? Wem ist das noch nicht passiert, dass er etwas für sich erfindet und dann feststellt, dass es das in der Bibliothek schon gibt. Oder besser, in den Bibliotheken und damit also noch mehrfach.

Ich verstehe zwar, dass es besser ist, z.B.
Delphi-Quellcode:
const
  StdProTag = 24;
zu verwenden als die Zahl 24 irgendwo in einer Funktion in einer Formel auftauchen zu lassen.
Aber muss man deshalb gleich immer die Monsterausdrücke wie System.SysUtils.HoursPerDay bemühen? Damit eindeutig ausgeschlossen wird, dass der Compiler irgendwo eine Definition HoursPerDay = 25 findet? Dann wäre doch die Definition eigener Konstanten sinnvoller, da weiss man was man hat. Oder?
Du musst dir diese Monster-Ausdrücke nicht merken und auch nicht verwenden. Wenn du dann feststellst, dass es so einen Wert schon als Konstante gibt, dann kannst du ja auch ganz einfach übernehmen
Delphi-Quellcode:
const
  // StdProTag = 24;
  StdProTag = System.SysUtils.HourPerDay;
Ist aber im Prinzip dann auch egal, meine Bibliothek würde ich dann nicht mehr anfassen, sondern wie gezeigt entsprechend abändern.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  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 11:15 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