Hallo JKL,
um den Dialog entsprechend der der Bildschirmauflösung anzupassen musst Du zuerst die Information über die
aktuelle Einstellung haben. Für Win bekommst Du das mit folgendem Code:
Code: Alles auswählen
Sub Bildschirmaufloesung
GlobalScope.BasicLibraries.LoadLibrary("ImportWizard")
sTemplateKeyName = "SYSTEM\ControlSet001\Hardware Profiles\0001\System\CurrentControlSet\SERVICES\IALM\DEVICE0\Mon00000400"
sTemplateValueName = "DefaultSettings.XResolution"
X_Setting = QueryValue(HKEY_LOCAL_MACHINE, sTemplateKeyName, sTemplateValueName)
sTemplateValueName = "DefaultSettings.YResolution"
Y_Setting = QueryValue(HKEY_LOCAL_MACHINE, sTemplateKeyName, sTemplateValueName)
msgbox "Die Bildschirmauflösung ist " & X_Setting & " x " & Y_Setting
End Sub
Das Komische an der Sache ist, dass man das Makro zweimal aufrufen muss damit die Auflösung angezeigt wird.
Vielleicht können uns die Experten dazu eine Lösung nennen.
Wenn Du die Information der Auflösung hast kannst Du den Dialog über eine If-Anweisung entsprechend anpassen.
Hier der Code für den Dialog:
Code: Alles auswählen
Sub Variabler_Dialog
Dim oDialog As Object
DialogLibraries.LoadLibrary("Standard")
oDialog = CreateUnoDialog(DialogLibraries.Standard.Dialog1)
oDialog.Title = "Variabler Dialog"
oDialog.Model.Width = 300
oDialog.Model.Height = 150
oDialog.Model.PositionX=0
oDialog.Model.Positiony=0
oDialog.Execute
End Sub
Schöne Grüsse.
Jürgen
Edit: Wenn man am Anfang des Codes noch folgendes voranstellt dann wird die Bildschirmauflösung schon beim ersten
Aufruf angezeigt: