Hallo Forum,
ich wollte mal fragen, wie ihr eure Formen skalierbar macht. Ich habe eine Form mit ca. 30 Elementen, die skalierbar sein soll.
Die momentane Größe ist 800x600. Damit dachte ich, wäre ich auf der sicheren Seite, aber jetzt soll das Programm auch auf einer Bildschirmauflösung von 1024x600 laufen!
Jedes Element mit Anchors zu definieren finde ich keine schöne Lösung.
Mir wäre eine Skalierung der ganzen Form am liebsten.
Kennt jemand eine elegante Plattform unabhängige Lösung?
Viele Grüße
Berlin
Form skalieren
-
- Beiträge: 306
- Registriert: Do 9. Apr 2009, 10:10
- OS, Lazarus, FPC: Ubuntu 9.10 (L 0.9.28 FPC 2.2.4)
- CPU-Target: 32Bit
- Wohnort: 785..
Re: Form skalieren
Alignments und Splitter/Pairsplitter verwenden kann helfen.
Andere Lösung kenn ich persönlich nur über Form.Clientwidth, falls du da irgendwie maßstäbliche Vergrößerungen in Abhängigkeit der Fenstergröße machen willst.
Diese beiden Sachen müssten plattformübergreifend funktionieren soweit ich weiss. Evtl gibts noch andere Vorgehensweisen, aber ich denk es ist ein Anfang womit man arbeiten kann.
Andere Lösung kenn ich persönlich nur über Form.Clientwidth, falls du da irgendwie maßstäbliche Vergrößerungen in Abhängigkeit der Fenstergröße machen willst.
Diese beiden Sachen müssten plattformübergreifend funktionieren soweit ich weiss. Evtl gibts noch andere Vorgehensweisen, aber ich denk es ist ein Anfang womit man arbeiten kann.
Ubuntu 9.10 (L 0.9.28 FPC 2.4.x)
-
- Beiträge: 657
- Registriert: Sa 9. Jan 2010, 17:32
- OS, Lazarus, FPC: Linux 2.6.x, SVN-Lazarus, FPC 2.4.0-2
- CPU-Target: 64Bit
Re: Form skalieren
Ich nutze Panels und die align-Eigenschaft.
Eine Hauptkomponente mit alclient und der Rest oben/unten/links/rechts angeordnet.
Eine Hauptkomponente mit alclient und der Rest oben/unten/links/rechts angeordnet.
Re: Form skalieren
Hallo Forum,
anbei meine "Lösung" (Demo-Programm).
Die einzelnen Elemente der Form werden in Breite und Höhe linear skaliert. Schriften sind noch nicht berücksichtigt.
Getestet im kleinen Maßstab unter LINUX GTK/GTK2 und QT, sowie unter Win32/64.
Unter GTK2 funktioniert das Form maximieren erst, wenn die Form fast das Maximum erreicht hat. GKT2 Bug?
Nicht gerade eine super schnelle Lösung, aber mit 45 Elementen sieht es nicht schlecht aus.
Verbesserungen nehme ich gerne entgegen.
Viel Spaß beim probieren.
BerLin
anbei meine "Lösung" (Demo-Programm).
Die einzelnen Elemente der Form werden in Breite und Höhe linear skaliert. Schriften sind noch nicht berücksichtigt.
Getestet im kleinen Maßstab unter LINUX GTK/GTK2 und QT, sowie unter Win32/64.
Unter GTK2 funktioniert das Form maximieren erst, wenn die Form fast das Maximum erreicht hat. GKT2 Bug?
Nicht gerade eine super schnelle Lösung, aber mit 45 Elementen sieht es nicht schlecht aus.
Verbesserungen nehme ich gerne entgegen.
Viel Spaß beim probieren.
BerLin
- Dateianhänge
-
- f_scaling.zip
- (164.46 KiB) 141-mal heruntergeladen
-
- Beiträge: 465
- Registriert: Sa 21. Aug 2010, 21:30
- OS, Lazarus, FPC: Windows 7 Ultimate (L 1.2.2 FPC 2.6.4 32-bit)
- CPU-Target: 64-Bit
- Wohnort: nahe Bremen
- Kontaktdaten:
Re: Form skalieren
kann ich leider aufgrund einer fehlenden qt4pas5.dll nichts mit anfangen schade
www.mcpatcher.net | www.hoeper.me
Re: Form skalieren
Hallo Bauer321,
stelle mal den Compiler von QT auf Win32/Win64 um, dann sollte es auch bei dir laufen.
Grüße
BerLin
PS: Unter Windows läuft es deutlich schneller als GTK/QT
stelle mal den Compiler von QT auf Win32/Win64 um, dann sollte es auch bei dir laufen.
Grüße
BerLin
PS: Unter Windows läuft es deutlich schneller als GTK/QT
-
- Beiträge: 244
- Registriert: Do 21. Jan 2010, 22:33
- OS, Lazarus, FPC: Windows Vista (L 0.9.31 FPC 2.5.1)
- CPU-Target: 32Bit
- Wohnort: z.z. Brasilien, sonst 82335 Berg-Leoni (südlich von München)
Re: Form skalieren
Hallo, habe hier ein kleines Programm, mit dem man beliebig viele Elemente einer Form zusammen mit dieser skalieren kann.
Funktioniert bei mir (Windows 32bit) ohne Probleme.
Viel Freude beim Ausprobieren.
P. Nikolaus
Funktioniert bei mir (Windows 32bit) ohne Probleme.
Viel Freude beim Ausprobieren.
P. Nikolaus