AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Die größe eines Monitors ermitteln (nicht Pixel)
Thema durchsuchen
Ansicht
Themen-Optionen

Die größe eines Monitors ermitteln (nicht Pixel)

Ein Thema von Alallart · begonnen am 12. Mai 2018 · letzter Beitrag vom 13. Mai 2018
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#11

AW: Die größe eines Monitors ermitteln (nicht Pixel)

  Alt 13. Mai 2018, 10:15
Effektiv kannst Du auf der gleichen Fläche unterschiedliche Anzahl Pixel haben (z.B. HD/4k).
Ja, per DPI = Skalierung der Pixel.
Sofern die physikalische Grösse der Pixel nicht bekannt ist, ist es unmöglich, die genaue Displaygrösse zu bestimmen.
Das wäre ja dann die Lochmaske/Pixel-Pitch, die bestimmt ja die physikalischen Dimensionen eines Pixels.
Ich glaube nicht das ich jemals irgendwo (abseits von Treiber intern selbst) etwas gelesen habe das mir diesen Wert ermittelt, wozu auch, Display-Dimensionen sind für uns wichtig.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#12

AW: Die größe eines Monitors ermitteln (nicht Pixel)

  Alt 13. Mai 2018, 11:10
Effektiv kannst Du auf der gleichen Fläche unterschiedliche Anzahl Pixel haben (z.B. HD/4k).
Ja, per DPI = Skalierung der Pixel.
Wobei Du beachten mußt, das MS davon ausgeht, das der Benutzer weiß welchen DPI/PPI-Wert das verwendete Display hat. Wenn er dann die Größe justiert sollte die Darstellung auf zwei unterschiedlichen Displays gleich groß sein, daß das mit der Realität wenig zu tun hat sollte eigentlich klar sein.


Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Die größe eines Monitors ermitteln (nicht Pixel)

  Alt 13. Mai 2018, 11:15
DPI-Angaben bei Röhrenmonitoren oder Beamern sind eh nie genau.
HDMI zu TV-Geräten wird manchmal nochmal bissl verzehrt (Rahmen).

Und sonst sagt wohl der Treiber (INF) dem Windows was der Monitor hat und das kann man bei Windows abfragen.
Ja, das kann verändert werden und auch am Monitor kann man da oft nochmal was verstellen, was Windows dann nicht mitbekommt, aber erstmal ist das die einzige praktikable Stelle um das zu erfahren.
Du kannst natürlich über spezielle Schnittstellen direkt mit dem einigen Monitoren reden, aber wer will sowas für "alle" Monitore/Hersteller der Welt seiber bei sich einbauen?

Windows fragen und im Programm das vom User nochmals anpassen lassen können, wenn er der Meinung ist genauer einstellen zu wollen.
$2B or not $2B
  Mit Zitat antworten Zitat
hstreicher

Registriert seit: 21. Nov 2009
221 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#14

AW: Die größe eines Monitors ermitteln (nicht Pixel)

  Alt 13. Mai 2018, 11:39
34" @ 21:9 @ 3440x1440 @ 96dpi
Es ist wahrscheinlich noch etwas früh aber wie wende ich jetzt genau Deine Formel an um als Ergebnis = 34 zu erhalten?
also die Angaben zu den Abmessungen eines Bildschirms ist die Diagonale

also Wurzel aus (Hoehe^2 + breite^2)

Abmessungen = Sqrt( (Pixelx/Dpi)^2+(pixely/dpi)^2) // ggf mal 2.54 wenns CM sein sollen

wie genau die Angaben sind die das Betriebssytem zurückliefert kann ich nicht beurteilen
  Mit Zitat antworten Zitat
Alallart

Registriert seit: 8. Dez 2015
155 Beiträge
 
#15

AW: Die größe eines Monitors ermitteln (nicht Pixel)

  Alt 13. Mai 2018, 13:42
Also ich ging nicht davon aus, dass Windows es weiß, aber in den letzten Jahren hat sich viel an der Technik getan. Es gab mal eine Zeit, da waren die Monitore monodirektional, dann wurden sie bidirektional. Ich habe mich gefragt ob die inzwischen evtl. ihre Größe Windows mitteilen.

Wie mache ich es in meinem Programm aktuell? Von Hand. Da habe ich zwei Möglichkeiten, eine einfache und eine weniger einfache. Die Einfache geht über die Eingabe der Bildschirmdiagonalen. Weiß ich, dass der Monitor 24" ist und 16:9, ist die erste Formel: f = QWurzel(16² + 9²) >> f = 18,36. Damit berechne ich dann Breite = 24 / f * 16. Oder Höhe = 24 / f * 9. Ergebnisse sind in Zoll, mit 2,54 multipliziert in Zentimeter. Bei der anderen Methode wird die Bildschirmbreite und -höhe von Hand gemessen, die Rechnung bleibt aber ähnlich.

Wenn wir schon dabei sind, und weil es mich selbst interessiert, bei einem 24" Monitor ist DPI: DPI = 1920 / Breite in Zoll = 91,8. Bei 21 ist sie 104,9. Bei 27 ist sie 81,3. Also immer anders.

Zurück zur Frage. Ganz kompliziert ist es also nicht, nur die Leute, für die ich das Programm schreibe, haben keine Ahnung was eine Bildschirmdiagonale ist, oder 16:9. Ich dachte ich bekomme es einfacher raus.
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#16

AW: Die größe eines Monitors ermitteln (nicht Pixel)

  Alt 13. Mai 2018, 17:55
Abmessungen = Sqrt( (Pixelx/Dpi)^2+(pixely/dpi)^2) // ggf mal 2.54 wenns CM sein sollen
sqrt(sqr(3440 / 96) + sqr(1440 / 96)) = 38.84"
sqrt(sqr(3440 / 96) + sqr(1440 / 96)) * 2.54 = 98.67 cm

Die Formel funktioniert so nicht.
Tatsächliche Dimension: 34" = 86.36 cm, so aufgeteilt 796.63 mm x 333.46 mm

edit
Andersrum funktioniert es die Diagonale zu berechnen: sqrt(sqr(796.63) + sqr(333.46)) / 10 = 86.36 cm
Gruß vom KodeZwerg

Geändert von KodeZwerg (13. Mai 2018 um 18:31 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 17:21 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