Forum: Programmieren allgemein
by Michael II,
13. Apr 2019
Ja du musst aber natürlich in deiner MulDiv() deine Rundungsfunktion MathRound() verwenden - so wie von dir gepostet verwendest du trunc().
Also so:
Result := MathRound( (nNumber * nNumerator) / nDenominator);
Weiter musst du den Fall nDenominator=0 abfangen (Result := -1) und auch mögliche Überläufe ((nNumber * nNumerator) / nDenominator kann so gross werden, dass das Resultat nicht in...
Forum: Programmieren allgemein
by Michael II,
6. Apr 2019
Hallo Dolly, was an der Formel verstehst du nicht?
Nimm ein System 1 mit DPI1 und ein System 2 mit DPI2.
Formularlänge auf System 1 sei l1 und auf System 2 l2.
Wenn DPI1 und DPI2 bekannt sind und das Formular mit Länge l1 momentan auf System 1 liegt, dann gilt für die entsprechende Länge l2 auf System 2 (zum Beispiel die Breite oder die Höhe oder die Diagonale ;-)):
l2 := ...
Forum: Programmieren allgemein
by Michael II,
6. Apr 2019
Hallo DieDolly
von einer Länge 1050 auf 1575 sind's nicht 33,4% mehr sondern 50%. Genau so ist es bei den DPI Werten: Von 96 auf 144 sind's auch 50% mehr.
Wenn du auf System 1 Auflösung DPI1 und auf System 2 DPI2 hast, und ein Formular auf System 1 l1 lang ist, dann hat es auf System 2 eine Länge von l2 := (DPI2/DPI1)*l1. In deinem Fall l2=144/96*1050=1.5*1050=1575.