AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Konstante beim kompilieren mit Batch setzten

Konstante beim kompilieren mit Batch setzten

Ein Thema von Robocolder · begonnen am 20. Jan 2015 · letzter Beitrag vom 26. Jan 2015
Antwort Antwort
Robocolder

Registriert seit: 19. Feb 2014
4 Beiträge
 
#1

Konstante beim kompilieren mit Batch setzten

  Alt 20. Jan 2015, 16:02
Hallo,
Ich habe mich neulich mit DPI und Delphi auseinander gesetzt und versuche gerade eine Art Batch an den Compiler zu hängen,
um die aktuelle DPI des Systems raus zu finden, von dem aus am Projekt gearbeitet wird.
Das Problem ist, das wenn Formulare auf verschiedenen System mit unterschiedlichen DPI erstellt, es passieren kann, dass
die Formulare unterschiedlich dargestellt werden. Um das zu verhindern wollte ich die aktuellen DPI des Systems als Konstante
erst beim kompilieren setzten.
Wäre super wenn mir jemand helfen könnte, wie man sowas umsetzten kann.

Gruß
Robin
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.769 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Konstante beim kompilieren mit Batch setzten

  Alt 20. Jan 2015, 16:14
.. Du willst doch nicht wirklich für jede verschieden Auflösung (DPI) ein
seperate Applikation erstellen?

Oder habe Deinen Post missverstanden?

Herzlich willkommen in der DP.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.199 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Konstante beim kompilieren mit Batch setzten

  Alt 20. Jan 2015, 16:28
Definiere Unterschiedlich dargestellt!
Normalerweise sollten unterscheidliche DPI-Einstellungen (bis auf Rundungsfehler) kein Problem darstellen wenn man sich an gewisse Regeln hält. Neuere Delphi-Versionen sind AFAIK auch Problemloser da einige Macken der VCL mit unterschiedlichen DPI-Einstellungen behoben wurden.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Robocolder

Registriert seit: 19. Feb 2014
4 Beiträge
 
#4

AW: Konstante beim kompilieren mit Batch setzten

  Alt 20. Jan 2015, 16:36
@Klaus01
Um Gotteswillen nein
Das Problem ist, dass wir zu mehreren an einer Anwendung arbeiten. Da es vorkommen kann, dass jemand aus seinem System eine andere DPI eingestellt hat
z.B 150% 120 DPI, kam es zu einigen Fehlern. Paintbox aus Formular verschoben u.ä.

Die Batch soll die aktuelle DPI des System auslesen und vor dem kompilieren eine Konstante mit diesem Wert setzten.

Gruß
Robin
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.199 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Konstante beim kompilieren mit Batch setzten

  Alt 20. Jan 2015, 16:42
Und was soll das bringen?
Es wird bei jedem Formular mitgespeichert unter welcher DPI-Einstellung es gespeichert wurd und beim darstellen zur Laufzeit wird
das mit der dann gültigen DPI-Einstellung kombiniert um die real anzuwendente Skalierung zu bestimmen. Und bis auf Rundungsfehler passt das auch. Ein weiter DPI-Wert ist m.E. unnötig.

Zeig doch mal ein Beispiel wo was falsch wäre und wie du es korrigieren willst.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

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

AW: Konstante beim kompilieren mit Batch setzten

  Alt 20. Jan 2015, 18:16
Welche Delphi-Version nutzt ihr?

Wenn ich auf meinem Schlepptop arbeite, der mal mit 125% eingestellt war, dann wurden alle Positionswerte vom Delphi (XE) automatisch angepasst.
Wenn ich die Form bei mir geladen hatte, "durch 3/4" und wenn ich die Form wieder auf einem anderem Rechner öffnete alles "mal 3/4" ... war nur nervig in der Versionsverwaltung, weil die Masse an Änderungen die eigentlichen Änderungen untergehen lässt.

Aber bis auf die Rundungsfehler gab es sonst keine Probleme.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PosEx im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Robocolder

Registriert seit: 19. Feb 2014
4 Beiträge
 
#7

AW: Konstante beim kompilieren mit Batch setzten

  Alt 21. Jan 2015, 11:44
Da bei zu hoher DPI auf dem Zielsystem Schriften aus ihren Komponenten reich, werden alle Elemente in einem Formular mit Self.ScaleBy(Screen.PixelsPerInch, 96) skaliert.
Diese 96 sind die DPI des Systems auf dem kompiliert wurde. Wenn auf einem System mit 120 DPI designed wurde und diese Konstante noch auf 96 DPI steht, gibt es bei einer möglichen Skalierung auf dem Zielsystem Skalierungsfehler.
Deswegen würde ich gerne die DPI-Konstante beim kompilieren automatisch setzten, da beim Arbeiten am Projekt schnell vergessen werden kann, diese Konstante anzupassen.

@himitsu
Wir benutzen Rad Studio XE 2

Gruß
Robin
  Mit Zitat antworten Zitat
Robocolder

Registriert seit: 19. Feb 2014
4 Beiträge
 
#8

AW: Konstante beim kompilieren mit Batch setzten

  Alt 26. Jan 2015, 12:21
An diesem Beispiel sieht man vielleicht das Problem besser
Ich habe das gleiche Programm einmal mit 100 % = 96 DPI und einmal mit 120 % = 120 DPI kompiliert.
Zielsystem läuft auf 100% = 96 DPI.

Bei den Komponenten auf dem ersten Formular kommt es allerdings zu größeren Skalierungsfehlern.

96 DPI
dashboard-build-96-.jpg

120 DPI
dashboard-build-120-.jpg


Bei den Komponenten auf dem zweiten Formular kommt es zur minimalen Änderungen durch Rundungsfehler schätze ich.

96 DPI
formular-build-96-dpi-.jpg

120 DPI
formular-build-120-dpi-.jpg


Gruß
Robin

Geändert von Robocolder (26. Jan 2015 um 12:56 Uhr)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 21:34 Uhr.
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