PDA

Vollständige Version anzeigen : Steuerelementengröße an Fenstergröße anpassen


alaudo
22.01.2008, 10:52
Hallo,

ich habe folgendes Problem: ich möchte die Größe einiger Steuerelemente in meinem Formular abhänging von der Formularfenstergröße anpassen.
Wenn ich "OnResize"-Ereignis abfange, und da auf Me.Width und Me.Height zugreife, dann ändert sich die Formulargröße nicht, obwohl die Fenstergröße offensichtlich anders ist.
In dem Forum habe ich nur die Lösung für unterschiedliche Bildschirmauflösungen gefunden. Ich möchte aber, dass der Benutzer automatisch die Größe des Formulars wählen könnte.

Vielen Dank im Voraus,
Alexander.

Bracki
22.01.2008, 13:05
Hallo Alex,

ich habe Dir mal etwas "zusammengestrickt" vielleicht hilft Dir das etwas auf die Sprünge. Das ganze ist unter Acc2000 getestet. Um die Funktionalität zu testen, musst Du z.B. an der rechten unteren Ecke im Formular die Größe mit dem Mauszeiger (also festhalten und ziehen) verändern.



Fehlerhafter Anhang wurde entfernt.

Sascha Trowitzsch
22.01.2008, 18:00
Me.Height und Me.Width sind die gespeicherten Abmessungen des Formulars.
Interessanter sind die Eigenschaften WindowWidth und -Height sowie InsideWidth, -Height. ;)
Und außerdem Me.Section(acDetail).Height.

Ciao, Sascha

Bracki
22.01.2008, 19:34
Hallo Sascha,

ich weiß jetzt nicht auf wen oder was Du Bezug nimmst. Wenn Du mich meinst, dann schaue Dir bitte mein Beispiel an und probiere das aus, was ich schon erwähnt hatte (Die Pos. der rechten unteren Ecke des Formulars mit der Maus verändern). Die "gespeicherten" Abmessungen werden aktuell bei der Veränderung der Größe des Formulars angezeigt und bei der Berechnung des "Testbuttons" ausgewertet um die Größe entsprechend anzupassen.

Anne Berg
22.01.2008, 22:33
Hallo Bracki,

ich kann deine MDB nicht öffnen/bearbeiten - geschweige denn testen.
Kannst du das bitte mal überprüfen?

Bracki
23.01.2008, 06:38
Hallo Anne,

keine Ahnung warum Du die MDB nicht öffnen konntest. Ich habe das ganze jetzt mal mit Acc2003 bearbeitet und bei mir auf mehreren Rechnern getestet und es hat funktioniert. Ich hoffe das es jetzt auch bei Dir klappt. Bin natürlich weiterhin daran interessiert ob wieder Fehler auftreten oder ob es diesmal funzt.

Anne Berg
23.01.2008, 10:09
Hallo Sven,

ja, jetzt hat es geklappt mit dem Öffnen und ich muss sagen: recht nett - und so simpel! ;)

Probleme dürfte es jedoch geben, wenn das Formular etwas voller ist bzw. wenn die Größenanpasssung auf mehrere Steuerelemente angewandt wird.

Falls es dich interessiert: der Fehler war "Fehler beim Laden von ...Formuar/Modul" und am Ende gab es keine Module / keinen VBA-Code.

Bracki
23.01.2008, 10:22
Hallo Anne,

das ist mir schon klar mit den von Dir beschriebenen Problemen. Es sollte ja auch nur ein Ansatz sein um zu zeigen was möglich ist (und das mit 8 Zeilen Code). Mit ein bisschen nachdenken und rechnen lässt sich das auch sicher über ein Formular mit mehr Inhalt anwenden.

Sascha Trowitzsch
23.01.2008, 13:15
@Sven: Mein Post bezog sich auf die Eingangsfrage und gibt schlicht die Antwort, warum Me.Height/Width sich in OnResize nicht passend ändern.
Deine DB konnte ich gestern auch nicht laden - das VBA-Projekt war beschädigt.

Ciao, Sascha

Bracki
23.01.2008, 13:21
Hi Sascha,

nu tut mir leid aber nun ist ja eine lauffähige Version unter #6 enthalten.

Deiner Aussage

Antwort, warum Me.Height/Width sich in OnResize nicht passend ändern

kann ich so nicht folgen. Kannst ja jetzt mein Bsp. anschauen.

Josef P.
23.01.2008, 13:25
@Sven: du verwendest doch InsideHeight und InsideWidth

BTW: die Funktion hinter "Aktuelle Auflösung Monitor" liefert bei mir für horizontal und vertikal den Wert für horziontal.

Bracki
23.01.2008, 13:33
Hi Josef,

verändere doch einfach mal die Größe des Formulars! Und das nicht mit "MIN" oder "MAX" sondern mit dem Mauszeiger! Das was Du meinst ist nur so eine "Zugabe" gewesen (Zugegeben - mit einem kleinen Fehler).

Josef P.
23.01.2008, 13:47
@Sven: dein Code funktioniert, weil du Me.InsideWidth verwendest und eben nicht Me.Width (bitte lies noch einmal #1 und die Antwort (#3) auf diesen Beitrag von Sascha)
Niemand behauptete, dass dein Code in Form_Resize() nicht funktioniert.

Das was Du meinst ist nur so eine "Zugabe" gewesen
und mein "BTW:..." war nur so ein Hinweis. ;)

Bracki
23.01.2008, 13:51
OK, kapiert. Ich sehe den Wald vor Bäumen nicht (umringt von 4 Computern). Sorry