Tipps für Delphi-Anwendungen mit mehreren Auflösungen

click fraud protection

Beim Entwerfen Formen im DelphiOft ist es nützlich, den Code so zu schreiben, dass Ihre Anwendung (Formulare und alle Objekte) unabhängig von der Bildschirmauflösung im Wesentlichen gleich aussieht.

Das erste, woran Sie sich zu Beginn der Formularentwurfsphase erinnern möchten, ist, ob Sie die Skalierung des Formulars zulassen oder nicht. Der Vorteil der Nichtskalierung besteht darin, dass sich zur Laufzeit nichts ändert. Der Nachteil, nicht zu skalieren, ist der Zur Laufzeit ändert sich nichts (Ihr Formular ist möglicherweise viel zu klein oder zu groß, um auf einigen Systemen gelesen zu werden, wenn es nicht skaliert ist.)

Wenn Sie das Formular nicht skalieren möchten, legen Sie fest Skaliert zu falsch. Andernfalls setzen Sie die Eigenschaft auf True. Auch einstellen Auto Scroll auf Falsch: Das Gegenteil würde bedeuten, dass die Rahmengröße des Formulars zur Laufzeit nicht geändert wird, was beim Inhalt des Formulars nicht gut aussieht tun Größe ändern.

Wichtige Überlegungen

Stellen Sie die Schriftart des Formulars auf eine skalierbare TrueType-Schriftart wie Arial ein. Nur Arial gibt Ihnen eine Schriftart innerhalb eines Pixels der gewünschten Höhe. Wenn die in einer Anwendung verwendete Schriftart dies nicht ist Wenn Windows auf dem Zielcomputer installiert ist, wählt es eine alternative Schriftart innerhalb derselben Schriftfamilie aus stattdessen.

instagram viewer

Legen Sie die Formulare fest Position Eigentum an etwas anderem als poDesigned, wodurch das Formular dort verbleibt, wo Sie es zur Entwurfszeit hinterlassen haben. Dies endet normalerweise weit links auf einem 1280 x 1024-Bildschirm - und vollständig außerhalb des 640 x 480-Bildschirms.

Überfüllen Sie das Formular nicht mit Steuerelementen. Lassen Sie zwischen den Steuerelementen mindestens 4 Pixel, damit eine Änderung der Randpositionen um ein Pixel (aufgrund der Skalierung) nicht als überlappende Steuerelemente angezeigt wird.

Für einzeilige Beschriftungen links oder in Ordung ausgerichtet, gesetzt Automatische Größenanpassung zu wahr. Andernfalls setzen Sie Automatische Größenanpassung zu falsch.

Stellen Sie sicher, dass in einer Beschriftungskomponente genügend Leerzeichen vorhanden sind, um Änderungen der Schriftbreite zu ermöglichen - ein Leerzeichen, das 25% der aktuellen Länge entspricht Zeichenfolge Die Displaylänge ist etwas zu groß, aber sicher. Sie benötigen mindestens 30% Erweiterungsspeicherplatz für Zeichenfolgenbeschriftungen, wenn Sie Ihre App in andere Sprachen übersetzen möchten. Wenn Automatische Größenanpassung Ist False, stellen Sie sicher, dass Sie die Etikettenbreite tatsächlich richtig eingestellt haben. Wenn Automatische Größenanpassung Ist wahr, stellen Sie sicher, dass genügend Platz vorhanden ist, damit das Etikett von selbst wachsen kann.

Lassen Sie in mehrzeiligen, in Wörter eingeschlossenen Etiketten mindestens eine Zeile Leerzeichen unten. Sie benötigen dies, um den Überlauf abzufangen, wenn der Text anders umbrochen wird, wenn sich die Schriftbreite mit der Skalierung ändert. Gehen Sie nicht davon aus, dass Sie, da Sie große Schriftarten verwenden, keinen Textüberlauf zulassen müssen - die großen Schriftarten anderer Personen sind möglicherweise größer als Ihre!

Seien Sie vorsichtig, wenn Sie ein Projekt in der IDE mit unterschiedlichen Auflösungen öffnen. Die Formen PixelsPerInch Die Eigenschaft wird geändert, sobald das Formular geöffnet wird, und wird im DFM gespeichert, wenn Sie das Projekt speichern. Testen Sie die App am besten, indem Sie sie eigenständig ausführen und das Formular mit nur einer Auflösung bearbeiten. Das Bearbeiten mit unterschiedlichen Auflösungen und Schriftgrößen führt zu Problemen mit der Drift und Größe der Komponenten. Stellen Sie sicher, dass Sie Ihre einstellen PixelsPerInch für alle Ihre Formulare bis 120. Der Standardwert ist 96, was zu Skalierungsproblemen bei einer niedrigeren Auflösung führt.

Wenn Sie von Komponentendrift sprechen, skalieren Sie ein Formular nicht mehrmals neu, weder zur Entwurfszeit noch zur Entwurfszeit Laufzeit. Jede Neuskalierung führt zu Rundungsfehlern, die sich sehr schnell ansammeln, da die Koordinaten streng integriert sind. Da bei jeder sukzessiven Neuskalierung Teilbeträge von den Ursprüngen und Größen der Kontrolle abgeschnitten werden, scheinen sich die Kontrollen nach Nordwesten zu kriechen und kleiner zu werden. Wenn Sie Ihren Benutzern erlauben möchten, das Formular beliebig oft neu zu skalieren, beginnen Sie vor jeder Skalierung mit einem frisch geladenen / erstellten Formular, damit sich keine Skalierungsfehler ansammeln.

Im Allgemeinen ist es nicht erforderlich, Formulare mit einer bestimmten Auflösung zu entwerfen. Es ist jedoch wichtig, dass Sie deren Formulare überprüfen Erscheinung bei 640 x 480 mit großen und kleinen Schriftarten und bei hoher Auflösung mit kleinen und großen Schriftarten vor der Veröffentlichung Ihre App. Dies sollte Teil Ihrer regelmäßigen Checkliste für Systemkompatibilitätstests sein.

Achten Sie genau auf alle Komponenten, die im Wesentlichen einzeilig sind TMemos -Dinge wie TDBLookupCombo. Das mehrzeilige Windows-Bearbeitungssteuerelement zeigt immer nur ganze Textzeilen an. Wenn das Steuerelement für seine Schriftart zu kurz ist, a TMemo wird überhaupt nichts zeigen (a TEdit zeigt abgeschnittenen Text an). Für solche Komponenten ist es besser, sie ein paar Pixel zu groß zu machen, als ein Pixel zu klein zu sein und überhaupt keinen Text anzuzeigen.

Beachten Sie, dass die gesamte Skalierung proportional zum Unterschied in der Schrifthöhe zwischen Laufzeit und Entwurfszeit ist. nicht die Pixelauflösung oder Bildschirmgröße. Denken Sie auch daran, dass sich die Ursprünge Ihrer Steuerelemente ändern, wenn das Formular skaliert wird. Sie können Komponenten nicht sehr gut vergrößern, ohne sie auch ein wenig zu verschieben.

Anker, Ausrichtung und Einschränkungen: VCL von Drittanbietern

Sobald Sie wissen, welche Probleme beim Skalieren von Delphi-Formularen mit unterschiedlichen Bildschirmauflösungen zu beachten sind, sind Sie für einige bereit Codierung.

Wenn Sie mit Delphi Version 4 oder höher arbeiten, werden verschiedene Eigenschaften entwickelt, um das Erscheinungsbild und Layout von Steuerelementen in einem Formular beizubehalten.

Verwenden Ausrichten Um ein Steuerelement oben, unten links oder rechts von einem Formular oder Bedienfeld auszurichten und dort zu belassen, auch wenn sich die Größe des Formulars, Bedienfelds oder der Komponente, die das Steuerelement enthält, ändert. Wenn die Größe des übergeordneten Elements geändert wird, ändert sich auch die Größe eines ausgerichteten Steuerelements so, dass es weiterhin den oberen, unteren, linken oder rechten Rand des übergeordneten Elements umfasst.

Verwenden Einschränkungen um die minimale und maximale Breite und Höhe des Steuerelements anzugeben. Wenn Einschränkungen Maximal- oder Minimalwerte enthalten, kann die Größe des Steuerelements nicht geändert werden, um diese Einschränkungen zu verletzen.

Verwenden Anker um sicherzustellen, dass ein Steuerelement seine aktuelle Position relativ zu einer Kante seines übergeordneten Elements beibehält, auch wenn die Größe des übergeordneten Elements geändert wird. Wenn die Größe des übergeordneten Elements geändert wird, behält das Steuerelement seine Position relativ zu den Kanten bei, an denen es verankert ist. Wenn ein Steuerelement an gegenüberliegenden Kanten seines übergeordneten Steuerelements verankert ist, wird das Steuerelement gedehnt, wenn die Größe seines übergeordneten Elements geändert wird.

Prozedur ScaleForm
(F: TForm; ScreenWidth, ScreenHeight: LongInt);
Start
F.Scaled: = True;
F.AutoScroll: = False;
F.Position: = poScreenCenter;
F.Font. Name: = 'Arial';
if (Bildschirm. Breite <> Bildschirmbreite) beginnen
F. Höhe: =
LongInt (F.Height) * LongInt (Bildschirm. Höhe)
div ScreenHeight;
F. Breite: =
LongInt (F.Width) * LongInt (Bildschirm. Breite)
div ScreenWidth;
F.ScaleBy (Bildschirm. Breite, Bildschirmbreite);
Ende;
Ende;
instagram story viewer