Wie Seitengröße auslesen? (also Format - Seite)

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

Moderator: Moderatoren

DocCyber
*
Beiträge: 18
Registriert: Sa, 18.01.2014 14:08
Wohnort: Erkelenz, NRW

Wie Seitengröße auslesen? (also Format - Seite)

Beitrag von DocCyber »

Hi community,

Ich möchte meine Formulare vollständig darstellen; nicht weniger, aber auch nicht mehr.
Dazu formatiere ich zur Entwurfszeit die Seite des entsprechenden Formulardokuments wie üblich mittels Format - Seite .
Wenn dann das Makro gestartet ist, schalte ich programmatisch das Hauptmenü des Fensters und sämtliche Menüleisten, Rollbalken, Lineale etc ab.
Danach wird das Fenster an das entsprechende Seitenformat angepasst und an die gewünschte Stelle des Monitors geschoben; also z.B. auf dem Monitor zentriert. All das klappt hervorragend.

Allerdings habe ich das Seitenformat im Makro-Code fest verdrahtet, weil ich bislang keine Möglichkeit finden konnte, das Seitenformat während der Laufzeit auszulesen.

Kann mir jemand auf die Sprünge helfen?
Zuletzt geändert von DocCyber am Do, 20.02.2014 18:21, insgesamt 1-mal geändert.
OpenOffice v 4.0.1
Windwos 7 / 64bit
F3K Total
********
Beiträge: 3724
Registriert: Mo, 28.02.2011 17:49

Re: Wie Seitengröße auslesen? (also Format - Seite)

Beitrag von F3K Total »

Hi,
wenn du die Seitenvorlage Standard verwendest, geht es so:

Code: Alles auswählen

sub get_pagesize
     PageSize = thisComponent.StyleFamilies.PageStyles.Standard.Size
     Seitenbreite = PageSize.Width/1000
     Seitenhoehe = PageSize.Height/1000
     msgbox "die Seite ist " + Seitenbreite + " cm breit und " + Seitenhoehe + " cm breit"
end sub 
Gruß R
DocCyber
*
Beiträge: 18
Registriert: Sa, 18.01.2014 14:08
Wohnort: Erkelenz, NRW

Re: Wie Seitengröße auslesen? (also Format - Seite)

Beitrag von DocCyber »

Hi F3K Total alias R.,

vielen Dank für dein Codesegment.
Jetzt müste ich nur noch wissen, was thisComponent in diesem Fall ist.
F3K Total hat geschrieben:

Code: Alles auswählen

PageSize = thisComponent.StyleFamilies.PageStyles.Standard.Size
Ich verwende Folgendes

Code: Alles auswählen

  thisDatabaseDocument.FormDocuments.getByName("Test").open

und später dann

Code: Alles auswählen

Sub Form_OnLoad
	Dim oForm As Object
	xray thisComponent     ' <-keine StyleFamilies gefunden
	oForm =  ThisComponent.DrawPage.Forms(0)
	xray oForm                      ' <-keine StyleFamilies gefunden
	' hier würde ich gern die Seitengröße abfragen
	Call InitFields(oForm)
	.......
End Sub
Kannst du bitte noch etwas detaillierter werden?

K.
OpenOffice v 4.0.1
Windwos 7 / 64bit
F3K Total
********
Beiträge: 3724
Registriert: Mo, 28.02.2011 17:49

Re: Wie Seitengröße auslesen? (also Format - Seite)

Beitrag von F3K Total »

Hi,
thisComponent ist das Formulardokument, desses Größe du auslesen möchtest.
Also quasi:
Sub Form_OnLoad
Dim oForm As Object
xray thisComponent ' <-keine StyleFamilies gefunden
oForm = ThisComponent.DrawPage.Forms(0)
xray oForm ' <-keine StyleFamilies gefunden
' hier würde ich gern die Seitengröße abfragen
Call InitFields(oForm)
.......
End Sub
Wenn du das Makro aus der IDE startest, geht es nicht, die IDE hat keine StyleFamilies.
Im geöffneten Formular Extras/Makros/...ausführen ... dann läufts.
Oder eben aus dem Formular heraus starten (Button/Ereignis ...)
Gruß R
DocCyber
*
Beiträge: 18
Registriert: Sa, 18.01.2014 14:08
Wohnort: Erkelenz, NRW

Re: Wie Seitengröße auslesen? (also Format - Seite)

Beitrag von DocCyber »

Hallo R.

funktioniert prima. Danke dir nochmals!!

Gruß
K.


Nun brauche ich noch einen Tipp, wie ich ein Fenster minimieren kann.
Aber bevor ich eine diesbezügliche Frage poste, sehe ich mich erst noch etwas um.
OpenOffice v 4.0.1
Windwos 7 / 64bit
F3K Total
********
Beiträge: 3724
Registriert: Mo, 28.02.2011 17:49

Re: Wie Seitengröße auslesen? (also Format - Seite)

Beitrag von F3K Total »

Schau in die FAQ's
DocCyber
*
Beiträge: 18
Registriert: Sa, 18.01.2014 14:08
Wohnort: Erkelenz, NRW

Re: Wie Seitengröße auslesen? (also Format - Seite)

Beitrag von DocCyber »

F3K Total hat geschrieben:Schau in die FAQ's
Yep, hatte es schon gefunden... ! :)
OpenOffice v 4.0.1
Windwos 7 / 64bit
Antworten