Hallo Leute,
ich suche ein Codebeispiel wie ich die Fenstergröße beim starten eines Formulars einstellen kann.
Ich habe bis jetzt noch keinen blassen schimmer wie ich das anstellen soll.
Ich hoffe mir kann jemand auf die Sprünge helfen.
Gruß Matthias
Fenstergröße beim Starten einstellen
Moderator: Moderatoren
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:
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
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)
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
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
-
- ***
- Beiträge: 65
- Registriert: Mo, 14.01.2008 19:31
Re: Fenstergröße beim Starten einstellen
Hallo thomas,
sag mal kann man hier auch noch die fensterposition verändern. Bei mir öffnet sich das formular dann zu weit rechts und ich muss es erst wieder in die mitte schieben...
Und vor allem wie war die Standarteinstellung!! HILFE=) Jetzt sind alle Fenster kaputt...da hätt ich mal gleich hören sollen und die auslesen...
Gruß
Gabriel
sag mal kann man hier auch noch die fensterposition verändern. Bei mir öffnet sich das formular dann zu weit rechts und ich muss es erst wieder in die mitte schieben...
Und vor allem wie war die Standarteinstellung!! HILFE=) Jetzt sind alle Fenster kaputt...da hätt ich mal gleich hören sollen und die auslesen...
Gruß
Gabriel