Frage zu Basic-Dialog (ist kein Problem)
Verfasst: Fr, 26.10.2012 15:38
Hallo Experten,
ich habe mir zur Anzeige verschiedenster Dinge, die gerade in einem Makro bearbeitet werden, einen Dialog zusammen-gezimmert (geklaut):
Damit mir andere Sachen, z.B. auf einem Tabellenblatt nicht verdeckt werden, oder z.B. eine Inputbox die Anzeige nicht verdecken, habe ich den Dialog nicht genau mittig haben wollen.
Klappt auch.
Unbequem ist nur, falls ich die Größe des Dialogs (B x H) ändere, muß ich die Eingaben aus den "Eigenschaften" per Hand in das Makro übertragen (Vergesslichkeit !).
Eigentlich müßte es ja möglich sein, diese Angaben vom Makro auslesen zu lassen.
Daher die Frage: wie ?
(Das Weglassen der Angaben [width,height], aber Kommata stehen lassen, in >setPosSize< klappt nicht)
gruß
sven-my
geändert (da hab' ich oben einen Fehler reingebracht):
ich habe mir zur Anzeige verschiedenster Dinge, die gerade in einem Makro bearbeitet werden, einen Dialog zusammen-gezimmert (geklaut):
Code: Alles auswählen
sub main
oDisplayAccess = CreateUnoService("com.sun.star.awt.DisplayAccess")
oDisplay = oDisplayAccess.getByIndex(0)
aRect = oDisplay.WorkArea
bx = aRect.Width
by = aRect.Height 'Dokumentfläche = by-70 (s. u.)/ Menue-Leiste zählt nicht zur Dokumentfläche
'msgbox bx & " , " & by
'exit sub
faktor = 1.8 'aus irgenseinem Grund, auch bei Einfügen von Grafiken in Dokumente per Makro, nötig
breite = 221 'aus Eigenschaften Dialog
hoehe = 86 'aus Eigenschaften Dialog
width = breite * faktor
height = hoehe * faktor
ru = 70 'Rand unten : Stausleiste + horizontale Bildlaufleiste
x = bx/2 -(width/2)
y = by -height -ru
LT = "Position ausprobieren"
Dim StatusDialog as object
Dialoglibraries.Loadlibrary("Standard")
StatusDialog= CreateUnoDialog(Dialoglibraries.Standard.Dialog1)
StatusDialog.setPosSize(x,y,width,height,com.sun.star.awt.PosSize.POSSIZE)
StatusDialog.visible = true
StatusDialog.getControl("Label1").Text = LT
for i = 1 to 100 'ohne diese Schleife wird bei mir der Dialog nicht angezeigt
wait 10
next i
msgbox "Position ausprobieren beendet"
end sub
Klappt auch.
Unbequem ist nur, falls ich die Größe des Dialogs (B x H) ändere, muß ich die Eingaben aus den "Eigenschaften" per Hand in das Makro übertragen (Vergesslichkeit !).
Eigentlich müßte es ja möglich sein, diese Angaben vom Makro auslesen zu lassen.
Daher die Frage: wie ?
(Das Weglassen der Angaben [width,height], aber Kommata stehen lassen, in >setPosSize< klappt nicht)
gruß
sven-my
geändert (da hab' ich oben einen Fehler reingebracht):
Code: Alles auswählen
bx = aRect.Width
by = aRect.Height 'Bildschimfläche minuns Taskbar