Bildschirmauflösung und Software

Hallo,

mich würde mal interessieren, wie es in der Praxis realisiert wird, daß sich Computerprogramme den verschiedensten Bilschirmauflösungen anpassen. Jetzt wo ich selber angefangen habe, zu programmieren (PureBasic), sehe ich, wie schwierig das ist. Zwar kann man die ganzen Werte für Buttongrößen usw. alle relativ eingeben, aber die Cursor-Größe z.B. in String-Gadgets wird dann trotzdem immer kleiner, je höher die Bildschirmauflösung ist und Texte, egal, ob bei Eingabe oder Ausgabe, auch. Wer weiß gut Bescheid auf dem Gebiet? Danke für Infos.

Rüdiger

mich würde mal interessieren, wie es in der Praxis realisiert
wird, daß sich Computerprogramme den verschiedensten
Bilschirmauflösungen anpassen.
Rüdiger

Hi Rüdiger, ich bin zwar kein „Oberprofiprogrammierer“, aber ich bin schon verdammt gut drauf.

Kurz; das ist ein RIESEN Problem. Man kann vieles machen, fast alles davon ist sehr aufwendig. Vieles ergibt sich automatisch aufgrund des Betriebssystemes. Oft geht man einfach davon aus, das ein Kunde eine gewisse Mindestauflösung (heute geht man von min. 1024 x 768 aus) hat. Aber wenn es wirklich darum geht, die Grösse eines Elementes, z.B. eines Button, eines Combofeld, Listfeld, usw. real prozentual an die Auflösung des Bildschirmes anzupassen, dann gibt es nur die eine Lösung, und die ist wirklich kompliziert; Auflösung auslesen, und prozentual alle Button anpassen. Wird heute praktisch bei keiner Anwendung gemacht, da defakto kaum/gar nicht nötig.

Jürgen

Hallo Jürgen,

vielen Dank. Ich weiß, daß viele Leute 1024 X 768 Bildschirmauflösung haben und manche auch noch mehr, aber das wird ja auch abhängig sein von der Bildschirmdiagonale. Wenn also Programme auf 800 X 600 angelegt sind und dann auf einem 800 X 600 Bildschirm bildfüllend erscheinen, sehen das die Leute, die 1024 X 768 oder gar 1600 X 1200 haben, gar nicht so viel kleiner, weil deren Monitor ja auch entsprechend mehr Bildschirmdiagonale hat. Richtig?

Gruß Rüdiger

Hi!
Nicht unbedingt.
Auf einem größeren Monitor kann man i.d.R. höhere Auflösungen fahren als auf einem kleinen, aber man muss nicht.
Wenn man partout will, kann man auch einen 21-Zöller mit 800x600 betreiben (ist dann für die ganz Blinden :smile:).

Normalerweise geht man von einer Bildschirmauflösung von 96dpi aus, also 96 Punkte pro 2,54 cm. Dieser Wert stimmt aber meist nicht mit den tatsächlichen Gegebenheiten überein, weshalb sich die Schriftgrößen der Standardschriftarten anpassen lassen.

Das Problem dabei aber wieder: Wenn man die Größe von irgendwelchen Controls vorgibt, dann muss der Text auch reinpassen, und das ist bei größeren Fonts evtl. nicht gegeben.

In manchen Entwicklungsumgebungen (keine Ahnung, ob PureBasic dazu gehört) kann man auch angeben, ob Dialoge entsprechend der Schriftgröße skaliert werden sollen, das funktioniert dann einigermaßen.

Eine richtige Lösung dafür kommt wohl frühestens mit Windows Vista, wenn eine Anwendung so geschrieben werden kann, dass alle Ausgaben nicht mehr pixelbasiert, sondern vektoriell erfolgen (das Grafik-Subsystem hiess mal „Avalon“, mittlerweile wohl WPF, kannst ja mal danach googlen).
Dann lässt sich das Fenster nämlich wirklich frei skalieren und alle Inhalte sind immer im gleichen Verhältnis zum Fenster, egal, ob es nun einen 800x600-Desktop auf einem 15" oder einen 1600x1200-Desktop auf einem 21"er füllt.

Gruß,
Martin

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Martin,

vielen Dank. Es wäre zum Lernen wohl am besten, wenn ich mal ein und dasselbe Programm auf Monitoren mit jeweils verschiedenen Auflösungen laufen lassen würde, dann könnte ich mal genau beobachten, was da passiert, denn das ist bestimmt anders, als wenn ich meinen 800 X 600 Monitor einfach nur umschalte auf 1024 X 768 oder noch höher.

Gruß Rüdiger

Hallo!

Ich löse das so indem ich über alle Steuerelemente eines Fensters iteriere und die Fenster- UND Schriftgrösse ändere.
Es macht übrigens nicht unbedingt Sinn ALLE Steuerelemente zu ändern, aber das kannst du ja von der Fensterklasse abhängig machen.

Gruß Pauli!

Hallo,

vielen Dank. Genau, die Schriftgröße ist das, wo ich auch mal ran muß.

Gruß Rüdiger

Hallo Rüdiger,

meine Erfahrung mit meinen Kunden hat mir gezeigt, dass es von keinem Anwender gerne gesehen wird, wenn eine Anwendung selber die Schriftgröße ändert. Als Argument wird angeführt, „Wenn ich die Schriftgröße in Windows einstelle, dann will ich alle Programme mit dieser Schriftgröße nutzen.“ Das macht auch durchaus Sinn. Nehmen wir ein Datengitter, das bei einer Auflösung von 1024x768 25 Zeilen anzeigen kann. Der Anwender stellt nun die Auflösung auf 1280x1024 und verkleinert die Schrift um mehr Zeilen sehen zu können doch welch Überraschung, er sieht immer noch 25 Zeilen, dafür springen ihn jetzt die Buchstaben in Übergröße an.
Ich würde die Schriftgröße auch nicht über einen Einstellungsdialog vom Anwender ändern lassen. Stell dir vor, ein Anwender hat 30 Programme von dir und muss bei jedem einzelnen die Schrift ändern wenn er sich z.B. einen neuen Monitor kauft.

Ich würde also von der Schriftgröße die Finger lassen, dafür ist Windows zuständig. Für die Größe der Controls gibt es (zumeindes bei Delphi und C+±Builder) die Eigenschaft Anchros und Align über die man das Verhalten bei Größenänderung einstellen kann.

Gruß Michi

Wenn
also Programme auf 800 X 600 angelegt sind und dann auf einem
800 X 600 Bildschirm bildfüllend erscheinen, sehen das die
Leute, die 1024 X 768 oder gar 1600 X 1200 haben, gar nicht so
viel kleiner, weil deren Monitor ja auch entsprechend mehr
Bildschirmdiagonale hat. Richtig?

Gruß Rüdiger

Hallo Rüdiger,

ja, so pie mal Daumen siehst du das wohl richtig, jedenfalls ausgehend davon, das auf grösseren Monitordiagolalen auch grössere Pixelauflösungen gefahren werden. So wäre es tatsächlich denkbar, das auf einem 17 Zöller bei 1024x768 (oder etwas mehr) eine 800x600 Anwendung ca. so gross erscheint wie auf einem 15 Zöller bei 800x600.

Aber sich darauf zu verlassen ist der falsche Weg. Versuche deine Anwendungen so zu machen, das verschiedene Auflösungen voll unterstützt werden. Du kannst ja eine gewisse Mindestauflösung verlangen. Bei meiner Anwendung war es unmöglich, auf Auflösungen unter 1024 x 768 zu gehen, also verlange ich das, das Programm kann nicht unter dem gestartet werden. Ist zwar schade, aber wie gesagt, die meisten haben 1024 und mehr.

Falls du noch Fragen hast, kannst mich auch direkt per Mail anschreiben.

Jürgen

1 Like

Hallo!

Du hast recht, es mach keinen Sinn bei höherer Auflösung die Schriftgrösse hoch zu setzen. Es wird ja wohl auch kein Programmierer ALLE Steuerelemente vergrössern.Einen Button sollte z.b. seine Grösse beibehalten, während ein Eingabefeld (wie das in dem ich den Text gerade schreibe) schon grosser werden sollte um den Platz zu nutzen.

Bei kleinerer Auflösung sollten aber alle Steuerelemente kleiner werden und da muss man darauf achten dass der Text (=Schriftgrösse) im Button noch Platz hat.

Gruß Pauli!

Hallo,

vielen Dank für alle Antworten. Habe heute erst wieder reingeschaut.

Rüdiger