Formulargrösse entsprechend Bildschirmauflösung
-
Kurze Frage, warum möchtest du das nicht mit dem maximiezed ? Das läuft doch aufs gleiche raus.
-
Ach so, was Anker (Anchors) sind weist du ?
-
Also, dann versuch ich es nochmals zu erklären:
Mein Formular soll bei jeder Auflösung die gleichen Proportionen haben.
Auf dem Entwicklungs-PC arbeite ich mit einer Auflösung von 1024x768.
Wenn ich jetzt aber die Anwendung auf einem PC mit einer Auflösung von 800x600 laufen lasse, dann wird einiges von dem Formular "abgeschnitten". Es erscheinen dann zwar die Scrollbars, aber das sieht nicht gut aus.
Daher möchte ich, dass sich das Formular je nach Auflösung gleich positioniert.P.S. Mit wsMaximized wird das Formular ja nur maximiert dargestellt, aber die Proportionen bleiben nicht erhalten.
P.P.S. das mit PixelPerInch klappt auch nicht wirklich. Das Formular wird bei 800x600 gleich wie bei 1024x768 dargestellt (also nicht proportional zur Auflösung)
-
Original erstellt von etechniker:
Ach so, was Anker (Anchors) sind weist du ?Ja, aber das klappt auch nicht
-
Ok, dann hab ich dein Problem jetzt vollkommen erfasst
Warum klappt das mit den Ankern nicht, dafür sind die doch da ?!
-
Was ist so schlimm, im Konstruktor der Form Width und Height auf Screen->Width und Screen->Height zu setzen?
-
Original erstellt von WebFritzi:
Was ist so schlimm, im Konstruktor der Form Width und Height auf Screen->Width und Screen->Height zu setzen?Das einzige, das daran schlimm ist, ist, dass die Form ja gar nicht maximiert sien soll.
-
So schlimm ist das ja auch nicht!
Ich wollte nur wissen, ob es da nicht schon eine Einstellung zur Entwurfszeit gibt, die einem so was abnimmt.
-
Original erstellt von Eßer:
Das einzige, das daran schlimm ist, ist, dass die Form ja gar nicht maximiert sien soll.Wird sie doch damit garnicht. *kopfschüttel*
-
Und dafür verschwendest du deine Zeit, anstatt nochmal 2 Zeilen zu schreiben?
-
Ähm ja!
Ich habe nämlich nicht nur ein Formular in meiner Anwendung, sondern mehrere.
Und wenn ich jetzt bei jedem Formular das in den Konstruktor schreibe muss...
Du weisst ja, der Mensch ist von Natur aus faul
-
Das klappt immer noch nicht!
Muss ich denn noch irgendwas anderes einstellen?Hier mal meine Einstellungen aus dem OI:
Anchors: alle true
AutoScroll: true
AutoSize: false
...
BorderStyle: bsSizeable
...
ClientHeight: 654
ClientWidth: 942
...
FormStyle: fsNormal
...
Height: 700
...
PixelsPerInch: 96
...
Position: poDesktopCenter
...
Width: 950
...
WindowState: wsNormal
-
Sieh dir mal TForm::ScaleBy() an.
-
Hi,
ich hab so ne Vermutung, dass du nur Anker für das Form gesetzt hast?! Ich schätze mal, dass du die auch für die Kompnenten auf dem Form setzten musst!Alexander Sulfrian
-
Original erstellt von Jansen:
Sieh dir mal TForm::ScaleBy() an.Der Tipp war schon mal nicht schlecht.
Allerdings habe ich jetzt folgendes Problem:
Die Formulargrösse wird nun entsprechend der Auflösung dargestellt,
allerdings werden die Grössen der auf dem Formular dargestellten Komponenten (z.B. Button, PageControl, ListView etc) nicht angepasst.
Ich habe doch die Eigenschaft TForm::Scaled auf true ?!
Bei den Komponenten selbst kann ich ja nicht einstellen, dass diese skaliert werden sollen (weder Eigenschaft Scaled noch Methode ScaleBy)Hat sonst noch jemand eine Idee?
-
Mit dem Scaled wäre ich vorsichtig. Irgendwie funktioniert das nicht nicht richtig, denn bei mir werden trotz gleicher Auflösung (1024x768) und gleicher Schriftgröße auf verschiedenen Rechnern mit verschiedenen Grafikkarten teilweise unterschiedlich verschobene Forms dargestellt. Ganz schlimm wirds, wenn man Panels verwendet und darauf Buttons und Editfelder plaziert.
-
Hallo
ich habe aehnlich eErfahrungen mit ScaledBy gemacht. Ich verwende es nicht mehr
Man kann das auch alles per Hand machen.MfG
Klaus
-
Da bin ich doch ganz Ohr!
Das klingt mir aber nach einer Menge Arbeit.
Mein Projekt ist doch schon relativ umfangreich und wenn ich da jetzt jede Komponente einzeln anfassen muss um diese anzupassen, dann wäre dies eine wirkliche "Strafarbeit".Nur mit dem Ergebnis von ScaleBy() kann ich auch nicht leben!
Ist das wirklich so ein riesen Act?
Naja, sonst lass ich's erst mal aussen vor und stell's so lange in die "Nice-To-Have-Ecke"
-
Hallo
- berechne die Groessenaenderung
- speicher dir im OnCreate die Werte aller Komponenten
- alle Komponenten anpassendh 2 Methoden und etliche Aufrufe (oder ComponentCount oder so)
Ich kanns gerade nicht nachschauenIst eigentlich nicht viel Arbeit
MfG
Klaus
-
Original erstellt von JeGr:
Nur mit dem Ergebnis von ScaleBy() kann ich auch nicht leben!Hast du es schon mal mit ScaleBy() ohne Scaled versucht?