Forum: Sonstige Fragen zu Delphi
Delphi
by himitsu,
5. Feb 2009
jupp, nimm mal 'nen Beamer und verschieb diesen 'nen Zentimeter :twisted:
bei Druckern isses heutzutage eigentlich Recht genau, vorallem wenn man im Milimeterbereich arbeitet,
da de Drucker ja 'ne sehr hohe Auflösung besitzt (da hält sich der Rundungsfehler in Grenzen und mit SetMapMode kann man auch da den Rundungsfehler schön leicht auf den ganzen Druckbereich verteilen)
und wenn die...
Forum: Sonstige Fragen zu Delphi
Delphi
by himitsu,
5. Feb 2009
Du hast halt bei allen Rechnungen immer mindestens eine Rundung der Werte drin.
Und demnach ergeben sich unterschiedliche Ergebnisse.
also wenn's möglichst genau sein soll, dann entweder SetMapMode, da sind die Ungenauigkeiten über den gesamten "Monitor" verteilt, oder du Rundest nur einmal und das ganz weit zum Schluß der Rechnung.
wenn du nur einen Monitor hast,
oder alle Monitore die...
Forum: Sonstige Fragen zu Delphi
Delphi
by himitsu,
5. Feb 2009
ist der DPI-Wert für deinen Monitor eigentlich richtig eingestellt?
(nicht daß da nur irgendwo 'ne falsche Angabe steht)
ich frag mich auch, was du mit myscreenWidth und myscreenHeight anstellst. :shock:
procedure TForm1.PixelsPerMM(canvas: TCanvas; var x, y: Extended);
var
H:HDC;
hres,vres,
hsiz,vsiz:integer;
begin
Forum: Sonstige Fragen zu Delphi
Delphi
by himitsu,
4. Feb 2009
na du übergibst der Funktion dein Canvas (worauf zu zeichen willst),
bekommst die Pixel pro Millimeter zurück und verrechnest diese dann mit der Größe deines Bildes.
Var X, Y: Single;
PixelsPerMM(Canvas, X, Y);
MMWidth := Bild.Witdh / X;
MMHeight := Bild.Height / Y;
PS: mit SetMapMode könntest du auch z.B. dein Drucker-Canvas so umschalten, daß die Pixel "Millimetern" entsprechen...