Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Problem mit Bildschirmauflösung (https://www.delphipraxis.net/182259-problem-mit-bildschirmaufloesung.html)

Natcree 14. Okt 2014 00:20

Problem mit Bildschirmauflösung
 
Hallo habe ein Programm geschrieben. An meinem Laptop mit einer Auflösung von 1680 x 1050 . Wenn ich das Programm auf einem anderen Rechner starte mit einer anderen Auflösung dann verschieben sich Button schriftgrößen und in einigen Fällen muss in der Form Runtergescrollt werden.
1. Gibt es dafür eine Lösung? Habe ein 2. Laptop mit ner Auflösung von 1600 x 900.
2. Erstelle mit pdfhdr.pas pdf dateien auf meinem Programier Rechner sehen sie gut aus und auf dem anderen wird Text über den rechten Rand geschoben.

Ich weiss mir bei beiden Punkten nicht zu helfen. Hat jemand einen Tip?

Captnemo 14. Okt 2014 06:07

AW: Problem mit Bildschirmauflösung
 
Dafür sind auf dem Rechner, wo es falsch angezeigt wird, die in der anzeigeeinstellungen festgelegte Schriftgröße verantwortlich. Vermutlich ist die dort auf größer als normal eingestellt.

Bernhard Geyer 14. Okt 2014 07:36

AW: Problem mit Bildschirmauflösung
 
Zu 1: Indem man es richtig macht. Bei D7 wird das Alignment der Control mit Right und/oder Bottom nicht richtig funktionieren. Hier muss man mit Right/Bottom-Aligned Hilfspanels arbeiten

Zu 2: Embeddest du die Fonts die du verwendest auch ein?

ExceptionOverflow 14. Okt 2014 08:36

AW: Problem mit Bildschirmauflösung
 
Nur zu 1:
Man sollte / muss / darf immer darauf achten, - wenn möglich - keine festen Größen und Platzierungen zu verwenden sondern immer im "Verhältnis" setzen, also wie schon vor mir geschrieben wurde mit den Alignments arbeiten, dann spielt auch die Fenstergröße und Auflösung keine Rolle. In Delphi ist das (meiner Meinung nach) etwas komplizierter, da man hier oft noch zusätzlich(e) panels einsetzen muss.

himitsu 14. Okt 2014 08:59

AW: Problem mit Bildschirmauflösung
 
Zitat:

Zitat von ExceptionOverflow (Beitrag 1275814)
da man hier oft noch zusätzlich(e) panels einsetzen muss.

In "aktuelleren" Delphis läuft es besser (nach XE), da dort so Einiges repariert, bzw. an die Eigenarten neuerer Windowse angepasst wurde.
So wurde z.B. früher die Fenstergröße (Width/Height) gespeichert, anstatt die Größe des Inhalts (ClientWidth/ClientHeight), was probleme bereitete, wenn auf unterschiedlichen Systemen die Rahmen und Titelleisten unterschiedlich groß sind.

Beim Align rechts und unten wurde dann oftmals die Größe beim Laden "angepasst", anstatt das Align neu zu berechnen, weswegen die Komponenten dann gern mal kleiner wurden.

usw.


Beim FMX hat man für's gruppieren z.B. das TLayout erfunden. (was man natürlich in der VCL nicht reingemacht hat, aber in der VCL kann man ja noch von Panels den Rahmen ausblenden und Diese verwenden)

Bei bestimmten unverständlichen Konstellationen muß man aber immernoch Hand anlegen, bei Align rechts/unten und im OnCreate die Größe manuell nochmal setzen.

Bjoerk 14. Okt 2014 10:55

AW: Problem mit Bildschirmauflösung
 
Zitat:

Zitat von Natcree (Beitrag 1275788)
2. Erstelle mit pdfhdr.pas pdf dateien auf meinem Programier Rechner sehen sie gut aus und auf dem anderen wird Text über den rechten Rand geschoben. [..]

Aus den 72 mal 96 gemacht bzw. hat dein Laptop eine andere Auflösung als 96?

Natcree 14. Okt 2014 12:17

AW: Problem mit Bildschirmauflösung
 
Problem 1 mit der AUflösung habe ich hinbekommen. nunmehr fehlt noch probl. 2

Also auf meinem Laptop erstellt er die pdf dateien mit rolepdf hier ist auch alles gut jedoch auf dem client rechner schiebt er im Briefkopf die Schrift über den rechten rand.

Delphi-Quellcode:
      {Briefkopflinie oben}
      Font.Size := 6;
      Pen.Color := clblack;
      MoveTo(100, 220);
      LineTo(PageWidth - 100, 220);
      Font.Size := 8;
      TextOut(120,225,dbmemo1.Lines[0]);
      TextOut(270,225,dbmemo1.Lines[1]);
      TextOut(420,225,dbmemo1.Lines[2]);//bis hier ist alles Gut
      TextOut(660,225,'Vorsitzender:');// ab hier verschiebt er den text nachrechts
      TextOut(760,225,form4.ClientDataSet1Vorname.AsString+' '+form4.ClientDataSet1Nachname.asstring);
      TextOut(660,240,'Telefon:');
      TextOut(760,240,form4.ClientDataSet1Telefonnummer.AsString);
      TextOut(660,255,'Email:');
      TextOut(760,255,form4.ClientDataSet1email.AsString);

p80286 14. Okt 2014 12:26

AW: Problem mit Bildschirmauflösung
 
Zitat:

Zitat von Natcree (Beitrag 1275788)
1. Gibt es dafür eine Lösung?

Ja, selber machen!

Alle automatischen "Lösungen" taugen wenig bis nichts. Insbesonders scaled ist da etwas eigenwillig.

Zitat:

Zitat von Natcree (Beitrag 1275788)
2. Erstelle mit pdfhdr.pas pdf dateien auf meinem Programier Rechner sehen sie gut aus und auf dem anderen wird Text über den rechten Rand geschoben.

Was meinst Du damit?
Im allgemeinen sind PDF-Dateien geräteunabhängig. Denen ist es herzlich egal welchen Monitor Du benutzt.

Gruß
K-H

Nachtrag:
Dein Sourcecode legt die Vermutung nahe, daß Du über einen Druckertreiber die PDF-Datei erstellst. Welches Papierformat ist denn für den Drucker eingestellt?

Natcree 14. Okt 2014 12:49

AW: Problem mit Bildschirmauflösung
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Im allgemeinen sind PDF-Dateien geräteunabhängig. Denen ist es herzlich egal welchen Monitor Du benutzt.
deswegen wundere ich mich ja auch. woran kann es denn liegen das er auf dem anderen rechner über den randschreibt
siehe Bild

Natcree 14. Okt 2014 12:52

AW: Problem mit Bildschirmauflösung
 
mir ist ausserdem noch etwas aufgefallen statt dem eurozeichen zeichnet er ein kleines Quadrat

Darlo 14. Okt 2014 13:29

AW: Problem mit Bildschirmauflösung
 
Ist die Schriftart auf dem Rechner installiert. Hatte schon öfter das Problem dass bei Kunden unter Win7 Arial Standard verschwunden war.

p80286 14. Okt 2014 13:30

AW: Problem mit Bildschirmauflösung
 
Zitat:

Zitat von Natcree (Beitrag 1275852)
Zitat:

Im allgemeinen sind PDF-Dateien geräteunabhängig. Denen ist es herzlich egal welchen Monitor Du benutzt.
deswegen wundere ich mich ja auch. woran kann es denn liegen das er auf dem anderen rechner über den randschreibt
siehe Bild

Schade, man sieht nicht so richtig was hier der Rand wovon ist, aber ein Blick auf das eingestellte Papierformat, von dem sich wiederum die Größe des Canvas ableitet, könnte hier weiter helfen.

Zitat:

Zitat von Natcree (Beitrag 1275854)
mir ist ausserdem noch etwas aufgefallen statt dem eurozeichen zeichnet er ein kleines Quadrat

Das sieht mir aber sehr nach einem Font-Problem aus. Kann Deine Software Fonts einbetten?

Taucht das Problem eigentlich auf wenn die PDF-Datei auf unterschiedlichen Rechnern generiert wird, oder wenn sie auf unterschiedlichen Rechnern angezeigt wird?

Gruß
K-H

Nachtrag:
Mit Arial Unicode solltest Du auf der sicheren Seite sein.

himitsu 14. Okt 2014 13:40

AW: Problem mit Bildschirmauflösung
 
Wenn die Schriftart dieses Zeichen nicht enthält und es keine Umleitung in einen anderen font gibt, dann wird nunmal das Platzhalterzeichen [oftmals ein Quadrat] hingemalt.
Es kann auch sein, daß du irgendwo ein CodePage-Konvertierungsproblem hast und das € dabei durch was Anderes ersetzt wurde.

Bjoerk 14. Okt 2014 13:48

AW: Problem mit Bildschirmauflösung
 
Hast du RolePDF.Canvas.Font.Charset := ANSI_CHARSET ?

Und, wie gesagt. Er verwendet PixelsPerInch = 72 zur Berechnung von PageWidth und PageHeight. Die stimmen aber nicht (mehr) mit RolePDFPageWidth und RolePDFPageHeight überein.

Natcree 14. Okt 2014 18:47

AW: Problem mit Bildschirmauflösung
 
Komischerweise funtz es auf meinem Programmier rechner.

Hat jemand noch ne idee

Darlo 14. Okt 2014 19:39

AW: Problem mit Bildschirmauflösung
 
Zitat:

Zitat von Natcree (Beitrag 1275930)
Komischerweise funtz es auf meinem Programmier rechner.

Hat jemand noch ne idee

das mit der font hast gelesen?

Natcree 14. Okt 2014 19:52

AW: Problem mit Bildschirmauflösung
 
Ja mit font habe ich gelesen. Aber arial ist doch standart font oder?

Darlo 14. Okt 2014 19:59

AW: Problem mit Bildschirmauflösung
 
:pale:
Zitat:

Zitat von Darlo (Beitrag 1275860)
Ist die Schriftart auf dem Rechner installiert. Hatte schon öfter das Problem dass bei Kunden unter Win7 Arial Standard verschwunden war.


Natcree 14. Okt 2014 20:22

AW: Problem mit Bildschirmauflösung
 
Arial hat er.

Natcree 15. Okt 2014 20:24

AW: Problem mit Bildschirmauflösung
 
Liste der Anhänge anzeigen (Anzahl: 1)
Also habe das Problem gefunden. Auf meinem Programmier Laptop habe ich 125% Eingestellt und beim anderen war auf 100 % Eingestellt wie kann ich diese Textgröße abfragen? und wie dies in meinem Programm ändern so das es funktioniert?

Siehe Bild


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:02 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