Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Pixel in cm umrechnen (https://www.delphipraxis.net/29855-pixel-cm-umrechnen.html)

Meflin 15. Sep 2004 16:21


Pixel in cm umrechnen
 
Hi,
wie kann man denn pixel in cm /mm /m oder änliche "echte" maßeinheiten umrechten?

*MFG*

SleepyMaster 15. Sep 2004 16:24

Re: Pixel in cm umrechnen
 
http://www.delphipraxis.net/internal...ixel+umrechnen

Glaub das geht nich zu einfach!

shmia 15. Sep 2004 16:25

Re: Pixel in cm umrechnen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Meflin
wie kann man denn pixel in cm /mm /m oder änliche "echte" maßeinheiten umrechten?

Siehe Anhang. :zwinker:

Meflin 15. Sep 2004 16:31

Re: Pixel in cm umrechnen
 
ähm lieg ich falsch oder sind da nur funktionen für die andere richtung drin?
(mm -> pixel)

Luckie 15. Sep 2004 16:33

Re: Pixel in cm umrechnen
 
Wozu brauchst du das?

Meflin 15. Sep 2004 16:38

Re: Pixel in cm umrechnen
 
nun ich will die länge eines labels bestimmen, in pixeln kein problem, nur dass das nicht sehr userfrundlich ist, da sich kaum einer was drunter vorstellen kann!

shmia 15. Sep 2004 16:40

Re: Pixel in cm umrechnen
 
Zitat:

Zitat von Meflin
ähm lieg ich falsch oder sind da nur funktionen für die andere richtung drin?
(mm -> pixel)

Stimmt schon. Diese Unit dient dazu, Druckerausgaben in mm oder Inches zu designen und
auf den Printer Canvas in Pixel umzurechnen.
Die Gegenrichtung sollte recht einfach sein (Kehrwert bilden):
Delphi-Quellcode:
function ConvertPixelstoMMX(const Value:Integer):Double;
begin
   Result := Value / GetPrinterRes(Printer, True) * mmPerInch;
end;

function ConvertPixelstoMMY(const Value:Integer):Double;
begin
   Result := Value / GetPrinterRes(Printer, False) * mmPerInch;
end;

Meflin 15. Sep 2004 16:45

Re: Pixel in cm umrechnen
 
ah thx, gleich mal austesten!

Luckie 15. Sep 2004 16:48

Re: Pixel in cm umrechnen
 
Zitat:

Zitat von shmia
Diese Unit dient dazu, Druckerausgaben in mm oder Inches zu designen und
auf den Printer Canvas in Pixel umzurechnen.

Ich die genauen Anforderungen die du hattest nicht aber mit MSDN-Library durchsuchensetmapmode hättets du dir viel Arbeit sparen können, so wie es bisher für mich aussieht.

ipworks 15. Sep 2004 17:28

Re: Pixel in cm umrechnen
 
Hallo
vielleicht hilft dir das:

Delphi-Quellcode:
function Tbuchungsform.Drucklinks(mm:integer):integer;
begin
     result:=StrtoInt(FloattoStrF(mm*GetDeviceCaps(Printer.Handle, LogPixelsX)/25.4,fffixed,10,0))
end;

function Tbuchungsform.Druckoben(mm:integer):integer;
begin
     result:=StrtoInt(FloattoStrF(mm*GetDeviceCaps(Printer.Handle, LogPixelsY)/25.4,fffixed,10,0))
end;
mfg
Peter

MPirnstill 14. Jun 2012 16:02

AW: Re: Pixel in cm umrechnen
 
Zitat:

Zitat von Luckie (Beitrag 205102)
Zitat:

Zitat von shmia
Diese Unit dient dazu, Druckerausgaben in mm oder Inches zu designen und
auf den Printer Canvas in Pixel umzurechnen.

Ich die genauen Anforderungen die du hattest nicht aber mit MSDN-Library durchsuchensetmapmode hättets du dir viel Arbeit sparen können, so wie es bisher für mich aussieht.

Hallo,

ich weiß, der Thread ist schon etwas älter, aber stehe jetzt vor einem ähnlichen Problem. Ich habe eine Art Editor mit der RTF-Komponente in Delphi 7 geschrieben.
Die soll für Tastschreibübungen dienen. So leider sieht das Getippte am Bildschirm jetzt nicht so aus wie das Gedruckte.

Kann ich, wenn ich diesen "setmapmode" verwende auch einfach sagen, das die Breite meiner RTF-Komponente 21 cm (- Randeinstellung) breit ist?

Also so eine Art WSYWYG. Das zumindest die Zeilen auf dem Bildschirm mit den Zeilen im Ausdruck identisch sind.

Bummi 14. Jun 2012 16:22

AW: Pixel in cm umrechnen
 
Vielleicht hilft Dir das weiter?

http://www.swissdelphicenter.ch/de/showcode.php?id=1466

in Kurzform habe ich etwas derartigen in meiner Spickerkiste
Delphi-Quellcode:
procedure PaintRichedit(canvas:TCanvas;re:Trichedit;Bounds:Trect;pixelsperinch:Integer=96);

var fmt   : TFormatRange;
begin
    InflateRect(Bounds,-2,-2);
    Bounds.Left := Round(Bounds.Left * 1440 / pixelsperinch) ;
    Bounds.right := Round(Bounds.right * 1440 / pixelsperinch) ;
    Bounds.top := Round(Bounds.top * 1440 / pixelsperinch);
    Bounds.Bottom := Round(Bounds.Bottom * 1440 / pixelsperinch);
     with fmt do
     begin
          hdc:= Canvas.handle;
          hdcTarget:= hdc;
          chrg.cpMin := 0;
          rcPage := Bounds;
          rc := Bounds;
          chrg.cpMax := re.GetTextLen;
     end;
     SetBkMode( Canvas.Handle, TRANSPARENT );
     re.perform( EM_FORMATRANGE, 1, integer( @fmt ));
     re.perform( EM_FORMATRANGE, 0, 0 );
end;

MPirnstill 15. Jun 2012 07:56

AW: Pixel in cm umrechnen
 
Hallo Thomas,

danke erstmal für deine Antwort.
Auf den ersten Blick sieht das sehr vielversprechend aus.
Werd mal schauen ob das passt.

Gruß
Micha


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:25 Uhr.

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 by Thomas Breitkreuz