Anwendungen mit dynamischer Größenanpassung der Formulare und Steuerelemente
Nach oben zu Unterschiedliche Host-Umgebungen berücksichtigen
Wenn Sie die Formulare und die visuellen Steuerelemente einer Anwendung dynamisch anpassen, müssen Sie alle Aspekte berücksichtigen, die sich auf diese Größenanpassung auswirken können. Nur so ist bei allen Bildschirmauflösungen ein optimales Erscheinungsbild der Anwendung gewährleistet. Nachstehend sind die wichtigsten Faktoren aufgeführt, die bei einer dynamischen Größenanpassung visueller Elemente einer Anwendung zu beachten sind:
- Die Größenänderung von Formularen und visuellen Steuerelementen wird in dem Verhältnis durchgeführt, das sich aus dem Vergleich der Bildschirmauflösung des Entwicklungscomputers mit derjenigen des Zielcomputers (auf dem die Anwendung installiert wird) ergibt. Verwenden Sie eine Konstante, um eine Dimension (Höhe oder Breite) der Bildschirmauflösung auf dem Entwicklungscomputer darzustellen. Die Angabe erfolgt in Pixel. Die Angabe erfolgt in Pixel. Ermitteln Sie zur Laufzeit die entsprechende Dimension des Zielcomputers mithilfe der Eigenschaft TScreen.Height oder TScreen.Width. Das Verhältnis zwischen den Auflösungen der beiden Computer erhalten Sie, indem Sie den Wert des Entwicklungscomputers durch den Wert des Zielcomputers dividieren.
- Ändern Sie die Größe der visuellen Elemente der Anwendung (Formulare und Steuerelemente), indem Sie ihre Größe in den Formularen erhöhen oder verringern und ihre Position entsprechend ändern. Die Änderung erfolgt proportional zur Differenz zwischen der Bildschirmauflösung des Entwicklungs- und des Zielcomputers. Sie können die Größen- und Positionsänderung visueller Elemente in Formularen automatisch vornehmen, indem Sie die CustomForm.Scaled der Formulareigenschaft Scaled auf True setzen und TWinControl.ScaleBy der Methode ScaleBy aufrufen. Die Methode ScaleBy ändert aber nicht die Höhe und die Breite des Formulars. Um die Größe des Formulars zu ändern, müssen Sie die aktuellen Werte der Eigenschaften Height und Width explizit mit dem Verhältnis der Bildschirmauflösungen multiplizieren.
- Statt die Steuerelemente in einem Formular mit der Methode TWinControl.ScaleBy automatisch zu skalieren, können Sie ihre Größe auch manuell anpassen, indem Sie jedes visuelle Steuerelement in einer Schleife referenzieren und seine Größe und Position festlegen. Die Werte der Eigenschaften Height und Width für visuelle Steuerelemente werden mit dem Verhältnis der Auflösungen multipliziert. Die Position eines visuellen Steuerelements legen Sie fest, indem Sie seine Eigenschaften Top und Left mit diesem Verhältnis multiplizieren.
- Wenn eine Anwendung auf einem Computer entwickelt wird, dessen Bildschirmauflösung höher ist als die des Zielcomputers, werden die Schriftgrößen bei der proportionalen Anpassung der visuellen Steuerelemente automatisch angepasst. Ist die zur Entwurfszeit verwendete Schriftgröße zu klein, kann die Schrift durch die Größenanpassung zur Laufzeit unleserlich werden. Angenommen, die Standard-Schriftgröße für ein Formular ist 8, der Entwicklungscomputer arbeitet mit einer Bildschirmauflösung von 1024x768 und der Zielcomputer mit einer Auflösung von 640x480. Die Dimensionen visueller Steuerelemente wird dann um den Faktor 0,625 (640 / 1024 = 0,625) reduziert. Die ursprüngliche Schriftgröße wird folglich von 8 auf 5 (8 * 0,625 = 5) verringert. Da zur Anzeige von Text in der Anwendung die reduzierte Schriftgröße verwendet wird, erscheint der Text verstümmelt und unleserlich.
- Die Größe bestimmter visueller Steuerelemente wie TLabel und TEdit wird dynamisch angepasst, wenn sich die Schriftgröße für das Steuerelement ändert. Dies kann sich auf weitergegebene Anwendungen auswirken, wenn die Größe von Formularen und Steuerelementen dynamisch geändert wird. Die Anpassung des Steuerelements aufgrund von Schriftgrößenänderungen addiert sich zur proportionalen Vergrößerung bzw. Verkleinerung, die aus der Bildschirmauflösung resultiert. Sie können diesen Effekt eliminieren, indem Sie die Eigenschaft AutoSize der betreffenden Steuerelemente auf False setzen.
- Vermeiden Sie die explizite Angabe von Pixel-Koordinaten, wenn Sie direkt auf der Zeichenfläche zeichnen. Ändern Sie die Koordinaten stattdessen unter Verwendung eines Proportionalfaktors, der das Verhältnis zwischen den Auflösungen auf dem Entwicklungs- und dem Zielcomputer wiedergibt. Wenn die Anwendung z.B. auf der Zeichenfläche ein Rechteck mit einer Höhe von 10 und einer Breite von 20 Pixel erstellt, verwenden Sie diese Maßangaben nicht direkt, sondern multiplizieren sie mit dem Auflösungsverhältnis. Dadurch wird sichergestellt, dass das Rechteck bei verschiedenen Bildschirmauflösungen in derselben Größe dargestellt wird.