DIN Formate und freie Formate auf Canvas

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
Hartkern
Beiträge: 69
Registriert: Sa 5. Dez 2015, 20:03
OS, Lazarus, FPC: Win10 IDE 1.6
CPU-Target: 64Bit
Wohnort: Leipzig

DIN Formate und freie Formate auf Canvas

Beitrag von Hartkern »

Hallo,

ich suche eine Möglichkeit DIN A3, A4 etc. und frei wählbare Formate auf einer Canvas darzustellen. Wie funktioniert die Umrechnung von Pixel in mm oder cm? ich finde da immer nur was mit dpi Abhängig :oops: Ich bräuchte die Anzeige in 25% Schritten von 25 bis 200, was bei einer bekannten Formel machbar sein sollte.

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: DIN Formate und freie Formate auf Canvas

Beitrag von Mathias »

ich finde da immer nur was mit dpi Abhängig

dpi gibt die Anzahl Pixel pro Zoll an, ich denke mal, das du die dpi-Zahlen von deinem Drucker-Treiber holen kannst.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Hartkern
Beiträge: 69
Registriert: Sa 5. Dez 2015, 20:03
OS, Lazarus, FPC: Win10 IDE 1.6
CPU-Target: 64Bit
Wohnort: Leipzig

Re: DIN Formate und freie Formate auf Canvas

Beitrag von Hartkern »

ich will ja nichts drucken...ich will nur maßstabsgerecht auf den Bildschirm ausgeben

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: DIN Formate und freie Formate auf Canvas

Beitrag von Mathias »

Du könntest auch alles in ein Bitmap Zeichen und anschliessend skaliert auf dem Form-Canvas ausgeben.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Hartkern
Beiträge: 69
Registriert: Sa 5. Dez 2015, 20:03
OS, Lazarus, FPC: Win10 IDE 1.6
CPU-Target: 64Bit
Wohnort: Leipzig

Re: DIN Formate und freie Formate auf Canvas

Beitrag von Hartkern »

wie groß muss das Bitmap dann sein?

weil genau vor diesem Problem steh ich immer noch.

Ich weiß ja wie groß in echt A6, 5 ,4, SR4, 3, SR3 sind..

sprich Pixel pro mm? oder hol ich die mir über die Auflösung des Bildschirms?

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: DIN Formate und freie Formate auf Canvas

Beitrag von Mathias »

Normalerweise holt man sich die Auflösung eines Papieres über den Drucker-Treiber.

Was ist dein Ziel, willst du eine Seiten Voransicht machen ?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: DIN Formate und freie Formate auf Canvas

Beitrag von wp_xyz »

Hartkern hat geschrieben:wie groß muss das Bitmap dann sein?

weil genau vor diesem Problem steh ich immer noch.

Ich weiß ja wie groß in echt A6, 5 ,4, SR4, 3, SR3 sind..

sprich Pixel pro mm? oder hol ich die mir über die Auflösung des Bildschirms?

Na wenn maßstabsgerecht auf dem Bildschirm ausgegeben werden soll, nimmst du natürlich die Bildschirmauflösung. Diese kannst du über Screen.PixelsPerInch oder Monitor.PixelsPerInch abfragen, also Pixel pro Zoll (2.54 cm). Mit folgender Funktion kannst du dann z.B. mm nach Pixel umrechnen:

Code: Alles auswählen

function ScaleMM(mm: Double): Integer;
const
  INCH = 25.4;
begin
  Result := round(mm/INCH * Screen.PixelsPerInch);
end;

Ein Quadrat mit 10 x 10 mm, dessen linke obere Ecke jeweils 20 mm vom (linken/oberen) Rand entfern sind, zeichnest du dann so, z.b. auf einer Paintbox:

Code: Alles auswählen

procedure TForm1.PaintboxPaint(Sender: TObject);
begin
  with Paintbox1.Canvas do begin
    Brush.Color := clWhite;
    FillRect(0, 0, Paintbox1.Width, Paintbox1.Height);
    Pen.Color := clBlack;
    Rectangle(ScaleMM(20), ScaleMM(20), ScaleMM(30), ScaleMM(30));
  end;
end;

Hartkern
Beiträge: 69
Registriert: Sa 5. Dez 2015, 20:03
OS, Lazarus, FPC: Win10 IDE 1.6
CPU-Target: 64Bit
Wohnort: Leipzig

Re: DIN Formate und freie Formate auf Canvas

Beitrag von Hartkern »

vielen Dank!!!!

Screen oder Monitor finde ich unter System?

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: DIN Formate und freie Formate auf Canvas

Beitrag von wp_xyz »

uses Forms;

Antworten