Seite 1 von 1

[Gelöst] Größe eines Makrodialogs bestimmen

Verfasst: Mi 22. Okt 2025, 22:01
von Jörg
Hallo,

ich suche nach einer Möglichkeit, die Höhe und Breite eines Dialogs zu bestimmen. Alternativ ginge auch eine Art "pack"-Befehl, der die Größe entsprechend der vorhandenen Objekte festlegt.

EDIT
Lösung gerade gefunden:
Den Mauszeiger auf einen der vier Ränder des Dialogfensters führen, bis der Mauspfeil sich in das Verschiebe-Kreuz wandelt. Ein Klick zeigt dann die Acht-Quadrat-Umrandung an und wandelt den Mauszeiger in den Pfeil zurück. Jetzt kann man den Pfeil auf eines der kleinen Quadrate führen,
bis er sich erneut wandelt; diesmal in einen Pfeil mit zwei Spitzen. Bei gedrückter Maustaste lässt sich
nun die Dialoggröße verändern. Wie von LOs GUI-Designer gewohnt, wird eine Änderung erst nach
Loslassen der Maustaste sichtbar.

Re: [Gelöst] Größe eines Makrodialogs bestimmen

Verfasst: Do 23. Okt 2025, 18:20
von wega
Hallo Jörg,

deine Fragestellung hatte mich auch interessiert, daher habe ich
mich im Internet auf die Suche begeben.
Hier ist eine Lösung, der Code stammt nicht von mir. Er ist aus dem
Internet.

Code: Alles auswählen

Sub DialogGroesseAuslesen

    ' Deklarieren von Variablen
    Dim oDialog As Object
    Dim oRectangle As Object
    Dim dlgBreite As Long
    Dim dlgHoehe As Long

    ' Dialogbibliothek laden (in diesem Beispiel wird die Standard-Bibliothek verwendet)
    ' Ersetzen Sie "Standard" und "Dialog1" durch den Namen Ihrer Bibliothek und Ihres Dialogs
    DialogLibraries.LoadLibrary("Standard")
    
    ' Den Dialog instanziieren (als Objekt ansprechen)
    oDialog = CreateUnoDialog(DialogLibraries.Standard.Dialog1)
    
    ' Den Dialog ausführen, damit seine Position und Größe initialisiert werden
    ' Dies ist wichtig, da die Größe sonst 0 sein kann
    oDialog.Execute()

    ' Die Eigenschaft PosSize abfragen, die ein Rectangle-Objekt zurückgibt
    oRectangle = oDialog.getPosSize()

    ' Die Breite und Höhe aus dem Rectangle-Objekt auslesen
    dlgBreite = oRectangle.Width
    dlgHoehe = oRectangle.Height

    ' Die Größeninformationen in einer Meldung anzeigen
    MsgBox "Die Breite des Dialogs beträgt: " & dlgBreite & " und die Höhe: " & dlgHoehe, 0, "Dialoggröße"

    ' Dialog wieder schließen und Ressourcen freigeben
    oDialog.dispose()
    
End Sub

Mit Gruß
Werner