Dialogfeld platzieren

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

mike6
*****
Beiträge: 479
Registriert: Sa, 06.03.2004 13:58

Dialogfeld platzieren

Beitrag von mike6 »

Hallo,

beim Start eines Dokuments öffne ich über

Code: Alles auswählen

Sub DialogMaske
	DialogLibraries.LoadLibrary("Standard")
	oDialog = CreateUnoDialog(DialogLibraries.Standard.Dialog1)
	oDialog.Execute()
End Sub
einen Dialog.
Ich möchte nun erreichen, dass das Dialogfenster immer zentriert auf dem jeweiligen
Bildschirm erscheint.
Wie ergänze ich den Code ?

mfg
mike
Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Re: Dialogfeld platzieren

Beitrag von Toxitom »

Hey Mike,

also, eigentlich ist der Dialog zentriert (über dem Dokument, das aufgerufen wird).
Ansonsten kannst du die Position des Dialoges vor dem execute()-Befehl natürlich setzen. Um einen zentrierten Dialog zu erhalten, müsstest du zunächst die Bildschirmbreite auslesen (wird in Pixeln geliefert), dann die aktuelle Dialogbreite (wird in MA´s - Map Appfont) geliefert, dann musst du beide Werte auf ein gleiches Mass umrechnen - das ist nicht ganz einfach ;-) - die Mitte nehmen, daraus dann den rechten, oberen Punkt des Dialoges bestimmen, und dann mit setPosSize() genau diesen rechten oberen Punkt setzen. Hier gelten dann wieder Pixel als Einheit.

Willst du wirklich den Aufwand betreiben???

Viele Grüße
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
mike6
*****
Beiträge: 479
Registriert: Sa, 06.03.2004 13:58

Re: Dialogfeld platzieren

Beitrag von mike6 »

Hallo Thomas,

habe mir das einfacher vorgestellt.
Vielen Dank für Deine Antwort.


mfg
mike
Antworten