Hey Matthias,
Das Problem ist ein wenig komplexer, als du dir das zunächst vorstellst.
Formulare sind ja nur Teil des geladenen Dokumentes, das bedeutet, du willst nicht die Größe des Formulars verändern (das hat nämlich gar keine Größe, ist mehr ein virtuelles "Objekt"), sondern die Größe des Dokumentes (Fensters), welche dann das Formular anzeigt. Das ist nicht so schwierig:
Code: Alles auswählen
oWin = StarDesktop.getCurrentFrame().getContainerWindow()
oGr = oWin.getPosSize() 'aktuelle Daten der Position/Größe
oWin.setPosSize(oGr.X, oGr.Y, 400, 300, 12)
Das ändert dir die Breite/Höhe des aktuellen Fensters auf 400/300 pixel.
Dabei erwartet setPosSize fünf parameter:
XKoord, YKoord, Breite, Höhe, PosSize
Possize ist ein Zahlenwert, der bestimmt, was geändert werden soll (siehe com.sun.star.awt.POSSIZE
Aber: Diese Einstellungen beeinflussen alle deine Dokumente. Das bedeutet, sie werden gespeichert (intern) und das nächste OOo Dokument, das du öffnest, wird in exakt mit diesen Daten geöffnet. Das führt in der Regel zu viel Verwirrung.
Lösung: Lies die aktuellen Größenordnungen zunächst aus, speichere sie zwischen, ändere dann die Formular-Fenstergröße, und wenn das Formular geschlossen wird, schreibst du zunächst die gespeicherten Größenwerte zurück und schliesst erst dann das Fenster.
Gruss
Thomas