Formulargrösse entsprechend Bildschirmauflösung
-
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?
-
Original erstellt von Jansen:
Hast du es schon mal mit ScaleBy() ohne Scaled versucht?Ja, aber leider mit dem selben Effekt.
Ich habe einige Buttons, die direkt auf dem Formular liegen. Bei diesen wird die Beschriftung entsprechend angepasst. Aber ich habe auch einige Buttons, die auf einem TabSheet eine PageControls liegen. Bei diesen funktioniert die Anpassung nicht.Werde das Ganze dann wohl mal per Hand versuchen.