Formulargrösse entsprechend Bildschirmauflösung



  • Hallo,
    Kann ich zur Entwurfszeit schon irgendwie einstellen, dass die Formulargrösse immer entsprechend der aktuellen Auflösung eingestellt wird?

    Zur Laufzeit kann ich ja über Screen->Width bzw. Screen->Height die Ausmasse feststellen, aber geht das auch schon zur Entwurfszeit?

    Bei den ganzen Grössenangaben der Komponenten sind ja immer absolute Werte angegeben. Die müsste man ja dann alle zur Laufzeit ändern 😕

    Wahrscheinlich steh ich mal wieder kräftig aufm Schlauch, aber ich hab da jetzt schon einige Zeit danach gesucht und ich finde einfach keine Lösung...



  • Einfach das Formular standadmäßig auf maximized setzen ?



  • Auch eine Möglichkeit, aber das möchte ich nicht!

    Ich bin gerade dabei, die Eigenschaft PixelsPerInch genauer zu durchschauen.

    Ich habe bei einer Auflösung von 1024x768 einen Wert von 96

    Bei einer Auflösung von 800x600 müsste ich einen Wert von 75 erhalten?

    Das werde ich jetzt mal testen...



  • 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.


  • Mod

    Hallo

    ich habe aehnlich eErfahrungen mit ScaledBy gemacht. Ich verwende es nicht mehr
    Man kann das auch alles per Hand machen.

    MfG
    Klaus


Anmelden zum Antworten