Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi TeeChart - Zu großer Rand beim EMF-Export (https://www.delphipraxis.net/211104-teechart-zu-grosser-rand-beim-emf-export.html)

SteffenSchm 1. Aug 2022 17:19

AW: TeeChart - Zu großer Rand beim EMF-Export
 
Hi himitsu,

danke für Deine Antwort!
Aber bekomme ich aus dem Wert "PixelPerInch" des Monitors tatsächlich die Skalierung des Monitors (z.B. 125%) raus?
Und der Rand des TChart hängt nicht vom Monitor ab, auf dem das Chart gerade liegt, sondern immer vom Hauptmonitor!

Und dann wäre ja auch noch der zweite Teil :?

Ich habe als schnelle Lösung die Kopie-Funktion jetzt umschaltbar zwischen EMF und Bitmap gemacht. Wenn der Hauptmonitor nicht auf 100%-Skalierung steht, muss man eben als Bitmap kopieren.

Ich glaube, so schnell bekomme ich da keine bessere Lösung hin!

himitsu 1. Aug 2022 18:12

AW: TeeChart - Zu großer Rand beim EMF-Export
 
Ganz sicher bin ich da auch nicht, weil mußte mich so jezt noch nicht damit beschäftigen.

Ich glaub 96 DPI kannst du als 100% ansehen und dann das mit den aktuellen DPI/PPI vergleichen.
Und vom Namen her würde ich mal denken, dass ScaleFactor der passende Wert sein könnte. ( 1.0 = 100% )

Redeemer 1. Aug 2022 19:22

AW: TeeChart - Zu großer Rand beim EMF-Export
 
Man kann sich auch die Datei mal ansehen, die da erstellt wird, und dann im PENHMETAHEADER selbst rumschreiben.
Mehr Informationen könnte man dir geben, wenn du eine richtige und eine falsche EMF desselben Bildes hochladen würdest.

Hintergrund ist ein ähnlihches Problem bei mir: Windows unterstützt RDP-Clients nicht vernünftig, die Bildschirme mit anderen Seitenverhältnissen als 4:3 haben, also praktisch alle aktuellen Arbeitsplätze. Grund dafür ist, dass
Delphi-Quellcode:
GetDeviceCaps(Handle, HORZSIZE)
und
Delphi-Quellcode:
GetDeviceCaps(Handle, VERTSIZE)
hardcoded 320 bzw. 240 sind. GDI erstellt daher schwachsinnige EMFs, die ein falsches Seitenverhältnis haben oder bei denen horizontale Linien viel dicker sind als vertikale (wenn du einen Breitbild-Bildschirm verwendest). Wie genau der Fehler zustandekommt, ist zudem von der Windows-Version abhängig. Ich hab mir dafür im PENHMETAHEADER rumgeschrieben. Du kannst die Methode gerne auch einfach mal probieren, das könnte sogar reichen. Der Code dort gehört zu einem Erben von TMetaFile. Da du keinen hast, solltest die abgespeicherte EMF-Datei von der Festplatte in den Stream laden und wieder speichern.

SteffenSchm 2. Aug 2022 16:09

AW: TeeChart - Zu großer Rand beim EMF-Export
 
Danke für Eure Hinweise und Unterstützung.

@himitsu
Zitat:

Und vom Namen her würde ich mal denken, dass ScaleFactor der passende Wert sein könnte. ( 1.0 = 100% )
Da hast Du recht - das liegt auf der Hand

@Redeemer
Danke für die Hinweise, aber das wird mir jetzt zu aufwendig. Wollte das Chart einfach nur mit
Delphi-Quellcode:
CopyToClipboardMetafile
schnell ausgeben und hatte gehofft, dass es vlt. doch eine schnelle Lösung für mein Problem gibt.

Ich werde erst einmal bei meiner einfache Lösung (emf wenns klappt, sonst Bitmap) bleiben.

Besten Dank!


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:14 Uhr.
Seite 3 von 3     123   

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