Forum: Programmieren allgemein
by BlueStarHH,
18. Mai 2022
Danke für die Erklärung. Aber das kann ich meinen Kunden nicht zumuten. Die wären damit überfordert.
Forum: Programmieren allgemein
by BlueStarHH,
18. Mai 2022
Ja, jede Komponente hat diese Einheit Eigenschaft "Units". Und diese wird u.a. über LocalMeasureInches festgelegt. Siehe oben und hier:
constructor TQRUnitBase.Create;
begin
if LocalMeasureInches then
Units := Inches
else
Units := MM;
...
end;
Forum: Programmieren allgemein
by BlueStarHH,
18. Mai 2022
Danke an alle. Ich habe das Problem in der QuickRpt.pas gefunden:
initialization
...
LocalMeasureInches := GetLocaleChar(DefaultLCID, LOCALE_IMEASURE, ' ') = '1';
...
Hier wird versucht die Maßeinheit Millimeter oder Inch vom System auszulesen. Auf dem Kunden-PC wird Inch erkannt, obwohl in der Systemsteuerung Millimeter eingestellt sind. Da keiner mit Inch arbeiten soll, habe ich...
Forum: Programmieren allgemein
by BlueStarHH,
18. Mai 2022
Alle Quickreport-Komponmenten haben die Eigenschaften Size.Left und Size.Top. Diesen weise ich einfach einen Wert zu. Z.B. eine 1 für einen Milimeter. Ich selber rechne gar nichts um. Der Fehler liegt also im Quickreport? Komisch, dass das Problem dann all die Jahre unentdeckt blieb.
Forum: Programmieren allgemein
by BlueStarHH,
18. Mai 2022
Hallo,
ich nutze Quickreport. Wenn bei einem Kunden ein Report erstellt wird, sind dort alle Größen/Positionen mit 25,4 multipliziert. D.h. in meiner Ini steht z.B. für ein Text-Objekt Left = 1 mm und Top = 10 mm, dann wird das Textobjekt aber bei Left = 25,4 mm und Top = 254 mm plaziert. Warum? Windows 10, Skalierung 100 %. Auf vielen anderen PCs läuft der selbe Code ohne Probleme.