Forums Neueste Beiträge
 

Form Startupposition Bildschirmmitte

21/04/2010 - 09:13 von Jens Müller | Report spam
Hallo,

wenn ich die Eigenschaft StartUpPosition einer Form auf Bildschirmmitte
setze, wird die Form absolut auf die Mitte des Bildschirms gesetzt, aber
nicht auf die Mitte des Bereichs, der für Anwendungen noch frei wàre, also
abzüglich der Taskleiste.
Das führt im Falle, dass meine Form z.B. 95% der möglichen Höhe beansprucht
dazu, dass sie teilweise unter der Taskleiste verdeckt ist, wàhrend oben
noch Platz wàre.

Ich gehe davon aus, dass das das gewollte Verhalten von StartUpPosition ist.
Wàre ein Auslesen der Koordinaten mit SPI_GETWORKAREA und manuelles
Berechnen der Mitte in Form_Load der richtige weg hier?

Danke,
Jens
 

Lesen sie die antworten

#1 Helmut Meukel
21/04/2010 - 10:06 | Warnen spam
"Jens Müller" schrieb im Newsbeitrag
news:
Hallo,

wenn ich die Eigenschaft StartUpPosition einer Form auf Bildschirmmitte setze,
wird die Form absolut auf die Mitte des Bildschirms gesetzt, aber nicht auf
die Mitte des Bereichs, der für Anwendungen noch frei wàre, also abzüglich der
Taskleiste.
Das führt im Falle, dass meine Form z.B. 95% der möglichen Höhe beansprucht
dazu, dass sie teilweise unter der Taskleiste verdeckt ist, wàhrend oben noch
Platz wàre.

Ich gehe davon aus, dass das das gewollte Verhalten von StartUpPosition ist.
Wàre ein Auslesen der Koordinaten mit SPI_GETWORKAREA und manuelles Berechnen
der Mitte in Form_Load der richtige weg hier?

Danke,
Jens




Hmmm,

Ich bezweifle dass es optisch ansprechend ist eine Form die fast - aber nicht
ganz - den freien Bereich benötigt, in diesen Bereich zu zentrieren und
dadurch z.B. ringsum 3 oder 5 mm Desktop sichtbar zu lassen. In so einem
Fall bevorzuge ich die Form zu maximieren.
Das kann man ziemlich einfach im Form_Load entscheiden: ist die Form
deutlich kleiner als der Bildschim dann zentrieren sonst einfach maximieren.
Man kann ja noch die Position der Controls leicht verschieben wenn man
maximiert, falls der untere und/oder rechte Rand zu breit erscheint.

Wenn man mehr tun will: Annahmen über die Intentionen der Benutzers
zu machen ist immer problematisch.
Hat er einen riesigen Bildschirm weil er schlecht sieht und deshalb die
Form und alle Controls darauf vergrößert haben will oder weil er auch
noch ein anderes Programm daneben anzeigen will?
Im letzteren Fall tue ich ihm mit Zentrieren meiner Form keinen Gefallen.
Da wàre also wàre ein "Einstellungen..."-Menüpunkt optimal. Dort kann
er festlegen wie mein Programm beim nàchsten Start angezeigt werden
soll:
- immer zentriert
- in der oberen linken Ecke
- speichern der jetzigen Position
- mit der Position beim letzten Programmende
- maximiert, die Controls in Größe und Position angepaßt
- maximiert, aber nur das Haupt-Control (z.B. ein Grid) breiter und höher
(beim Grid also mehr Zeilen und Spalten sichtbar)
- ...

Das Ganze hàngt natürlich auch von Programmzweck und Zielgruppe
ab.

Helmut.

Ähnliche fragen