Autor |
Beitrag |
Egbert
      
Beiträge: 47
Win XP
D4 Prof
|
Verfasst: Mi 11.02.04 14:50
möchte gern ein cm-Lineal in mein Programm einbauen, Wer kann mir helfen? Wichtig ist, daß bei allen BS-Auflösungen das Verhältnis stimmt.
Würde mich auf Hinweise, eventuell mit einem kl.Beispiel freuen. Egbert
|
|
jaenicke
      
Beiträge: 19312
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mi 11.02.04 15:24
Titel: Mehrere Möglichkeiten
Hallo!
Also erstens könntest Du mal über die Canvas-Eigenschaft vom Hauptfenster gehen. Dort gibt es glaube ich auch so etwas wie DotsPerInch oder so ähnlich.
Ansonsten probiers mal hiermit:
Delphi-Quelltext 1: 2: 3:
| GetDeviceCaps(Screen.Handle, LOGPIXELSX); GetDeviceCaps(Form1.Canvas.Handle, BITSPIXEL); |
Bei diesem Befehl gibt es weitere Konstanten, aber ich weiß nicht, ob die dpi Angabe auch beim Bildschirm geht. (Bei Laserdruckern geht sie.)
Wie diese Angabe jetzt genau heißt, kann ich jetzt nicht sagen, kuck mal ins SDK, das bei Delphi dabei ist!
Die Angabe gibt die Anzahl der Punkte auf einen Zoll zurück.
Hoffe das hilft.
MfG,
S.J.
|
|
Gausi
      
Beiträge: 8548
Erhaltene Danke: 477
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: Mi 11.02.04 15:25
Was für ein Verhältnis meinst du? Das zwischen mm und cm z.B.? Das wäre ja kein Problem. Oder meinst du, dass 1cm auf dem Bildschirm-Lineal auch wirklich 1cm lang ist? Denn das wäre wohl etwas komplizierter, da das nicht nur von der Auflösung, sondern auch von der Monitorgröße abhängt.
Ansonsten würde ich dir raten, mal in der Hilfe nach Canvas, LineTo, MoveTo usw. zu suchen. Das sind die Dinge, die man zum zeichnen im wesentlichen braucht.
_________________ We are, we were and will not be.
|
|
Egbert 
      
Beiträge: 47
Win XP
D4 Prof
|
Verfasst: Mi 11.02.04 15:44
Titel: zu cm-Lineal
zunächst mal vielen Dank. es sollten schon mm-striche gezeichnet werden. habe das auch schon mal gemacht, nur stimmten , wie du schon sagtest, bei unterschiedlichen BS das Verhältnis nicht mehr. d.h es war nicht mehr ein cm ein cm lang usw. es müßte ja eigentlich eine Brechnung möglich sein, wo unterschiedliche Auflösungen berücksichtigt werden. Beim Ausdruck stimmt das Verhältnis 100%tig. Nur halt nicht auf dem BS. ok, werde mich noch ein wenig damit befassen müssen.
Danke - Egbert
|
|
Chatfix
      
Beiträge: 1583
Erhaltene Danke: 10
Win 10, Win 8, Win 7, Win Vista, Win XP
VB.net (VS 2015), MsSQL (T-SQL), HTML, CSS, PHP, MySQL
|
Verfasst: Mi 11.02.04 15:51
selbst wenn dus auf die auflösungen anpasst...
Verlgeich mal nen 15" Monitor und nen 17" Monitor beide mit 800x600px
Dann wirst du sehen das das eigentlich unmöglich ist eine 100%ige anpassung zu finden
_________________ Gehirn: ein Organ, mit dem wir denken, daß wir denken. - Ambrose Bierce
|
|
Gausi
      
Beiträge: 8548
Erhaltene Danke: 477
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: Mi 11.02.04 16:29
...dann muss man eben auch noch auslesen, was für ein Monitor dran hängt. Aber da hab ich im Moment keine Peilung, wie das gehen soll. Geht das überhaupt, d.h. weiss mein Windows, dass mein Monitor 19 Zoll hat, und nicht 15?
_________________ We are, we were and will not be.
|
|
Egbert 
      
Beiträge: 47
Win XP
D4 Prof
|
Verfasst: Mi 11.02.04 16:32
ist schon klar, daß es beim 15" u.17" unterschiedlich ist.
hab in mein DB-Prg. ein Etikettendruck eingefügt, wofür das cm-Lineal gedacht war. Wie kann man dann erreichen, daß die Etikettengröße richtig berechnet wird. stelle z.Zt. einen Faktor ein, mit dem die korrekte Größe errechnet wird. z.Bsp. b.Eti 89x36 mm, Fkt:=0.325 = 89*10*Fkt zeichnet die korrekte Breite auf dem BS. gibt es da nicht eine andere Möglichkeit, um die Größe auszurechnen?
Egbert..
|
|
Gausi
      
Beiträge: 8548
Erhaltene Danke: 477
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: Mi 11.02.04 16:54
wie stellst du denn den Faktor ein? Einfach so, relativ willkürlich festgelegt für eine Auflösung und einen Monitor?
Probier es doch so:
Benötigte Daten:
- Bildschirmauflösung, kann man auslesen, steht bestimmt hier im Forum
- Monitorgröße in Zoll (evtl. durch Benuntzerabfrage)
Damit bekommt man die Länge/Breite des Monitors (Diagonale bekannt und Verhältnis Breite-Höhe konstant). Dann kann man doch berechnen, wieviele Pixel auf einen Zoll/ Zentimeter kommen. Danach kannst du die Längeneinteilung vornehmen.
Sehr vage, aber der Weg ist klar, oder?
_________________ We are, we were and will not be.
|
|
Egbert 
      
Beiträge: 47
Win XP
D4 Prof
|
Verfasst: Mi 11.02.04 17:56
den Fkt stelle ich einfach so ein und gucke dann. und wenn es dann stimmt, dann stimmt's. allerdings nur auf dem BS. beim Ausdruck muß ich dann noch ein bißchen dazurechnen. aber wie gesagt, werde eventuell noch dahinter kommen. habe zwar gedacht ich erfahre etwas mehr zu diesem thema. aber trotzdem, ich sage nochmal DANKE! und dann bis zum nächsten PROBLEMO...
egbert
|
|
|