AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TeeChart - Zu großer Rand beim EMF-Export

Offene Frage von "SteffenSchm"
Ein Thema von SteffenSchm · begonnen am 28. Jul 2022 · letzter Beitrag vom 2. Aug 2022
Antwort Antwort
SteffenSchm

Registriert seit: 2. Nov 2004
Ort: Herzogenaurach
84 Beiträge
 
Delphi 10.3 Rio
 
#1

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

  Alt 1. Aug 2022, 16:17
Naja, auf eine Reparatur in TeeChart zu warten hat für mich eher keinen Sinn, zumal ich nicht die aktuelle Version von Delphi und TeeChart habe!

Mir würde es schon helfen, das Ganze nachträglich so hinzubiegen.
Als Nebenbei-Programmierer weiß ich aber nicht
- wie ich in Delphi die Skalierung des primären Monitors abfragen kann und
- wie ich die Größe der Zeichenfläche für das EMF beeinflussen kann
Steffen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.372 Beiträge
 
Delphi 12 Athens
 
#2

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

  Alt 1. Aug 2022, 16:39
zum Ersten:

Einfach Delphi-Referenz durchsuchenTForm.PixelsPerInch bei der Form, wo der Chart drauf liegt,
bzw. bei Screen in den jeweiligen Monitor schauen.

hier noch paar mögliche Stellen uvm.
Delphi-Quellcode:
// Self = die aktuelle Form

Self.PixelsPerInch
Self.CurrentPPI // bzw. Self.GetCurrentPPI
Self.ScaleFactor

Self.Monitor.PixelsPerInch
Self.DefaultMonitor.PixelsPerInch

Screen.PixelsPerInch
Screen.DefaultPixelsPerInch
Screen.PrimaryMonitor.PixelsPerInch

...
https://en.delphipraxis.net/topic/63...ays-identical/


das Zweite ... gute Frage
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 1. Aug 2022 um 16:44 Uhr)
  Mit Zitat antworten Zitat
SteffenSchm

Registriert seit: 2. Nov 2004
Ort: Herzogenaurach
84 Beiträge
 
Delphi 10.3 Rio
 
#3

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

  Alt 1. Aug 2022, 17:19
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!
Steffen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.372 Beiträge
 
Delphi 12 Athens
 
#4

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

  Alt 1. Aug 2022, 18:12
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% )
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.118 Beiträge
 
Delphi 2009 Professional
 
#5

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

  Alt 1. Aug 2022, 19:22
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 GetDeviceCaps(Handle, HORZSIZE) und 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.
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
SteffenSchm

Registriert seit: 2. Nov 2004
Ort: Herzogenaurach
84 Beiträge
 
Delphi 10.3 Rio
 
#6

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

  Alt 2. Aug 2022, 16:09
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 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!
Steffen
  Mit Zitat antworten Zitat
Antwort Antwort

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:18 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-2025 by Thomas Breitkreuz