Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi DisplayWidth (TField) in Milimeter umrechnen (https://www.delphipraxis.net/30933-displaywidth-tfield-milimeter-umrechnen.html)

Icemanemp 1. Okt 2004 12:41


DisplayWidth (TField) in Milimeter umrechnen
 
Hi,

ich brauch für meine Abschlussprojekt (Fachinformatiker Anwendungsentwicklung) ne mathematische Formel, wie ich die DisplayWidth eines TFields in Milimeter oder cm umrechnen kann!
Da DisplayWidth nur die Anzahl der Zeichen angibt kann ich diese nich an mein Projekt übergeben! Ich hab mir den Quellcode des DBGrids angeschaut, aber nur diese Formel gefunden:
Delphi-Quellcode:
 Field.DisplayWidth := (Value + (TM.tmAveCharWidth div 2) - TM.tmOverhang - 3)
          div TM.tmAveCharWidth;
Wenns interessiert es ist was mit List&Label und diese Software verarbeitet nunmal alles in Milimeter!
Wäre net, wenn mir einer helfen könnte, da mir nur noch diese kleine Berechnung zur Vollendung meines Abschlussprojektes fehlt! Danke

ibp 1. Okt 2004 13:02

Re: DisplayWidth (TField) in Milimeter umrechnen
 
vielleicht lässt sich da ja was mit canvas und den pixeln machen!

Icemanemp 1. Okt 2004 13:11

Re: DisplayWidth (TField) in Milimeter umrechnen
 
Die Formel aus den DBGrid scheint mir schon richtig zu sein, aber wie und mit was soll ich die Werte füllen bzw. muss ich dann noch irgendwas berechnen, da ich denke, da man dann nur ein ergebnis hat, das pixelgenau ist, weil Windows ja Pixel zeichnet. Ich brauch aber Millimeter...

ibp 1. Okt 2004 13:18

Re: DisplayWidth (TField) in Milimeter umrechnen
 
das kommt doch dann auf die auflösung des displays an, ist die nicht in pixel/inch angegeben, das kann man dann doch auf mm umrechnen!

Icemanemp 1. Okt 2004 13:29

Re: DisplayWidth (TField) in Milimeter umrechnen
 
Screen.PixelsperInch gibt aber nur den vertikalen Wert an! horizantal scheint der anders zu sein lt. Hilfe! Da ich aber Spalten einer tabelle habe sind diese horizontal angeordnet!
Bin z.Z am rumbasteln an der Formel, aber bekomm da nix gescheites raus!

Jörn 1. Okt 2004 13:40

Re: DisplayWidth (TField) in Milimeter umrechnen
 
Das wird auch nichts. Es kommt ganz auf die Größe des Monitors an, auf die Einstellungen (nutze ich den ganzen Bildschirm, oder hab ich schwarze Ränder?) usw. Wenn das was werden soll, dann nur über das Ausmessen des Bildschirms durch den User.

Icemanemp 1. Okt 2004 13:48

Re: DisplayWidth (TField) in Milimeter umrechnen
 
Unmöglich ist das bestimmt nicht! Egal ob ich schwarze Ränder hab oder nicht die Auflösung kann ja abgefragt werden! vielleicht auch noch obs small also 96dpi schriftgrösse benutzt wird usw., aber die genau berechnung fehlt mir!

ibp 1. Okt 2004 13:50

Re: DisplayWidth (TField) in Milimeter umrechnen
 
ok, ^ das stimmt also sollte man dvon ausgegeh, daß der bildschirm voll ausgenutzt wird und es ein tft ist, da hier die sichtbaren Bildschirmgröße in zoll (1 zoll (1") = 2,54 cm = 1 inch) angegeben ist! also ist die umrechnung nun nicht allzu schwer, nur muss das programm wissen, wie hoch ist die auflösung und wie groß ist der sichtbare bereich, zur not leg ein maßband mit dabei! :lol:

dizzy 1. Okt 2004 13:54

Re: DisplayWidth (TField) in Milimeter umrechnen
 
Es ist ohne Hilfe des Users unmöglich! Woher willst du denn wissen, ob ich nen 14"er auf 800x600, oder nen 22"er auf 800x600 Pixel fahre? Das bekommst du softwareseitig nicht raus. Und selbst wenn: Wer sagt dir, dass ich bei meinem 22"er den Sichtbereich nicht so klein gemacht habe, dass effektiv nur so 17" angezeigt werden?
Die größe eines Pixels ist nicht softwareseitig ermittelbar! Geht einfach nicht. Du brauchst den User, und selbiger ein Lineal und ein gutes Auge. Mit dessen Hilfe kannst du dann deine Ausgaben kalibrieren - anders nicht.

Aenogym 1. Okt 2004 13:58

Re: DisplayWidth (TField) in Milimeter umrechnen
 
hi,

die auflösung und PixelsPerInch nützen dir garnichts, wenn du nicht die exakten ausmaße des im monitor angezeigten bildes weißt ;)

denn angenommen du findest jetzt zufällig ein paar werte, die das ganze bei dir richtig ausgeben. dann stell in deinem monitor einfach mal dein bild ein (zB etwas breiter oder dünner).
wenn du nun mit diesem "verzerrten" bild etwas am pc zeichnest o.ä. und dies dann mit dem gleichen code drucken lässt, dann wird das verschoben sein, da du ja nicht mehr die pixel so siehst, wie vorher.

worauf ich hinaus will: pixel sind virtuelle größenangaben. millimeter reelle.
du kannst pixel in millimeter nur umrechnen, wenn du folgende größen kennst:
-exakte ausmaße des angezeigten bildes
-die auflösung
-die DPI

dann kannst du dir das ausrechnen :)

Aenogym

edit: war ich doch wieder zu lahm :mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:19 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz