Discussion:
Controls sind auf anderen Computern nicht da wo sie sein sollen
(zu alt für eine Antwort)
Matthias Hanft
2015-01-11 14:04:37 UTC
Permalink
Hallo,

bei Bedarf illustriere ich mein Problem gerne mit ein paar Screenshots,
aber vielleicht ist das ja ein bekannter Effekt:

Ich habe hier einen Desktop-PC mit einem Bildschirm von 1920x1200, auf
dem ich meine D7-Programme schreibe. Daneben gibt es noch einen Laptop
mit einem Bildschirm von 1920x1080. Auf beiden läuft Windows7/64.

Wenn ich nun ein auf dem Desktop compiliertes D7-EXE nehme, wo auf einem
Formular ein paar Buttons, StringGrids, Labels etc. drauf sind, kommt
es vor, daß die auf dem Laptop ganz woanders stehen und/oder unter-
schiedlich breit sind. Aktuell habe ich z.B. ein StringGrid, das auf
dem Laptop *breiter* ist als auf dem Desktop (so dass zwischen der
rechtesten Spalte und dem vertikalen Scrollbalken noch ein Zenti-
meter Platz ist, der auf dem Desktop-PC nicht da ist).

Ganz schlimm wird es, wenn ich Buttons auch "rechts" und/oder "unten"
verankere (damit sie beim Größerziehen des Formulars mitwandern und
z.B. ein "OK"-Button immer schön unten zwischen einen Memo-Feld und
dem unteren Rand des Formulars bleibt) - die sind dann oft gar nicht
mehr sichtbar.

Ich behelfe mir einstweilen damit, daß ich im FormShow-Ereignis "Top",
"Left", "Height" und "Width" der Controls an das Form.ClientRect (oder
so ähnlich) anpasse. Aber das ist natürlich umständlich und mühsam (und
schon gar nicht allgemeingültig).

Ganz an Delphi scheints allerdings auch nicht zu liegen: Auch bei
Fremdprogrammen sind auf dem Laptop Labels teilweise ineinander-
geschoben, Checkboxen nicht zugänglich etc. (naja, vielleicht
sind diese Fremdprogramme ja auch in Delphi geschrieben?!) :-)

Ist das ein bekannter Effekt, und/oder hängt das von der Bildschirm-
auflösung ab, oder wie kann man das als Programmierer möglichst all-
gemeingültig lösen?

Danke & Gruß Matthias.
Hans-Peter Diettrich
2015-01-11 14:27:29 UTC
Permalink
Post by Matthias Hanft
Ganz an Delphi scheints allerdings auch nicht zu liegen: Auch bei
Fremdprogrammen sind auf dem Laptop Labels teilweise ineinander-
geschoben, Checkboxen nicht zugänglich etc. (naja, vielleicht
sind diese Fremdprogramme ja auch in Delphi geschrieben?!) :-)
Das deutet auf ein Treiberproblem hin.
Post by Matthias Hanft
Ist das ein bekannter Effekt, und/oder hängt das von der Bildschirm-
auflösung ab, oder wie kann man das als Programmierer möglichst all-
gemeingültig lösen?
Probiere mal Form.Scaled.

DoDi
Achim Kalwa
2015-01-11 16:38:29 UTC
Permalink
Hallo,
Post by Matthias Hanft
Ganz an Delphi scheints allerdings auch nicht zu liegen: Auch bei
Fremdprogrammen sind auf dem Laptop Labels teilweise ineinander-
geschoben, Checkboxen nicht zugänglich etc. (naja, vielleicht
sind diese Fremdprogramme ja auch in Delphi geschrieben?!) :-)
Ist das ein bekannter Effekt, und/oder hängt das von der Bildschirm-
auflösung ab, oder wie kann man das als Programmierer möglichst all-
gemeingültig lösen?
Ist auf dem Laptop evtl. in Windows eine Skalierung auf z.B. 125% (=120
dpi) eingestellt? Das kann zu solchen Problemen führen. Selbst wenn in
den Forms "Scaled := True" eingestellt ist, gibt es beim Positionieren
von Controls mit Anchors right/bottom einige Fehler.

Die Situation hat sich in neueren Delphi-Versionen etwas gebessert; da
Du aber noch D7 verwendest musst Du vermutlich damit leben, die
Positionen der Controls selber zu berechnen.

Achim

Loading...