Wie man ein Delphi-TForm nach Verwendung von ScaleBy () auf das ursprüngliche Aussehen zurücksetzt

8

Ich möchte zulassen, dass ein Formular vom Benutzer mit den proportional skalierten Steuerelementen skaliert wird. ScaleBy (N, M) funktioniert gut für mich, aber es gibt natürlich kumulative Rundungsfehler, wenn es wiederholt wird. Um dem entgegenzuwirken, möchte ich einfach ScaleBy () mit einem Aufruf voranstellen, um das Formular in seiner Standarddarstellung und Größe wiederherzustellen und dann ScaleBy mit verschiedenen Werten aufzurufen. Ich weiß, dass ich das tun kann, indem ich mein Formular in einem Panel hosting (und es neu anordnen), aber gibt es einen Aufruf, der das Formular nach der Verwendung von ScaleBy () zurücksetzt?

Bearbeiten - Ich benutze Delphi XE2 und würde mich auch für irgendjemandes Erfolg mit einer Komponente oder einem anderen Code (bezahlt oder frei) interessieren, um ein Formular ordentlich zu skalieren - meine eigenen Downloads haben keine funktionierende Lösung hervorgebracht.

    
Brian Frost 05.01.2012, 11:25
quelle

3 Antworten

7

Probieren Sie die Komponente EasySize ( TFormResizer ) aus.
Die TFormResizer -Komponente ändert die Größe aller Steuerelemente in einem Formular (oder Panel), wenn sich die Formulargröße ändert.
Ich habe es vor Jahren erfolgreich benutzt - funktioniert mit D5 / 7. Möglicherweise müssen Sie für XE2 kleine Anpassungen vornehmen (ich habe XE2 nicht, also kann ich es nicht testen).

Verwendung:

%Vor%     
kobik 05.01.2012, 15:36
quelle
2

Eine Lösung wäre, die Components-Eigenschaft des Formularinterates über alle untergeordneten Steuerelemente eines Formulars zu verwenden und sie auf ihren ursprünglichen Wert zurückzusetzen.

Der folgende Artikel enthält Beispielcode: Ссылка

Dies ist für einen etwas anderen Zweck, aber es sollte nicht schwer sein, den Code an Ihre Bedürfnisse anzupassen.

    
Johan 05.01.2012 15:14
quelle
1

Stellen Sie zuerst die Skala auf die ursprüngliche Skala ein und skalieren Sie dann auf eine neue Skala. Um beispielsweise ein Formular in einem OnResize-Ereignis zu skalieren:

%Vor%     
NGLN 05.01.2012 17:02
quelle