Seite 1 von 2
Sind Fenstergrößen für Dokumente individuell einstellbar?
Verfasst: Mi 28. Mai 2014, 15:58
von jair_ohmsford
Guten Tag!
Um mit einem anderen Programm problemlos zusammenarbeiten zu können, brauche ich 3 Dokumentfenster in unterschiedlichen Formaten (2 klein, in etwa quadratförmig, eines mit einer kleinen Höhe, aber relativ breit). Natürlich kann ich die 3 Fenster in jeder Sitzung in die richtige Form bringen. Aber gibt es vielleicht auch eine Möglichkeit, die Form (und evtl. auch die Position) der Fenster mit abzuspeichern, so dass sie ihr Format nicht immer wieder vergessen? Offenbar wird nur die Position und Größe des zuletzt abgespeicherten Fensters beibehalten.
Mein Betriebssystem ist Windows 7 Home Premium mit Service Pack 1.
Vielen Dank,
Jair
Re: Sind Fenstergrößen für Dokumente individuell einstellbar
Verfasst: Mi 28. Mai 2014, 21:08
von gogo
das "Fenster" kann diese Eigenschaft nicht speicehrn, zumal das ja eine betriebssystemspezifische Eigenschaft ist. Du kannst Dir aber ein paar Makros wie das untenstehende machen, und diese in den Symbolleisten festpinnen, auf Klick wird dann das Fenster verkleinert
Code: Alles auswählen
sub FenstergroesseSetzen(optional optHeight, optional optWidth, optional optZoom)
dim oWin as object
dim oGr as object
dim lHeight as long
dim lWidth as long
oWin = StarDesktop.getCurrentFrame().getContainerWindow()
oGr = oWin.getPosSize()
if ismissing(optHeight) then
lHeight = CLng(300)
else
lHeight = CLng(optHeight)
end if
if ismissing(optWidth) then
lWidth = CLng(500)
else
lWidth = CLng(optWidth)
end if
if oWin.IsMaximized then oWin.IsMaximized = false
oWin.setPosSize(oGr.X, oGr.Y, lWidth, lHeight, 12)
' Falg 12 - siehe http://www.openoffice.org/api/docs/common/ref/com/sun/star/awt/XWindow.html#setPosSize
if ismissing(optZoom) then
StarDesktop.getCurrentFrame.Controller.ViewSettings.ZoomValue = 100
else
StarDesktop.getCurrentFrame.Controller.ViewSettings.ZoomValue = CLng(optZoom)
end if
end sub
Alternativ kann das Dokument natürlich auch Benutzerdefinierte Eigenschaften speichern, diese verstaust Du am Besten irgendwo/irgendwie unter
Die kann man beim Start des Dokumentes auslesen und dann eben alles Mögliche damit anstellen.
Außerdem wäre es möglich die Fenstertitel zu durchsuchen, und die passenden Fenster dann auf die jeweilige Größe zu bringen. Den Titel des Fensters bekommst Du über
Vermutlich auch irgendwo bei "StarDesktop.getCurrentFrame..." ... oder so ähnlich - musst Du XRayen
Re: Sind Fenstergrößen für Dokumente individuell einstellbar
Verfasst: Mi 28. Mai 2014, 21:20
von jair_ohmsford
Vielen Dank für die Hilfe! Mit Makros hatte ich bisher noch nicht gearbeitet. Ich werde das bei nächster Gelegenheit mal ausprobieren.
Nochmals vielen Dank,
Jair
Re: Sind Fenstergrößen für Dokumente individuell einstellbar
Verfasst: So 3. Aug 2014, 11:52
von Mau
Liebe(r) gogo,
ich habe das gleiche Problem und zu deiner Antwort zwei Fragen.
gogo hat geschrieben:Alternativ kann das Dokument natürlich auch Benutzerdefinierte Eigenschaften speichern, diese verstaust Du am Besten irgendwo/irgendwie unter
Ich vermute, dass das eine Einstellung der Registry ist. Ist das richtig?
gogo hat geschrieben:Die kann man beim Start des Dokumentes auslesen und dann eben alles Mögliche damit anstellen.
Außerdem wäre es möglich, die Fenstertitel zu durchsuchen, und die passenden Fenster dann auf die jeweilige Größe zu bringen. Den Titel des Fensters bekommst Du über
Vermutlich auch irgendwo bei "StarDesktop.getCurrentFrame..." ... oder so ähnlich - musst Du XRayen
Wie macht man das - XRayen?
Gruß,
Mau
Re: Sind Fenstergrößen für Dokumente individuell einstellbar
Verfasst: So 3. Aug 2014, 18:50
von lorbass
Mau hat geschrieben:Ich vermute, dass das eine Einstellung der Registry ist. Ist das richtig?
Nein, was du da vermutest, ist falsch. In der
Windows-Registry werden Informationen über den Rechner, die eingerichteten Benutzer, Windows und die installierten Programme gespeichert. Es wäre ja geradezu absurd, wenn
DocumentProperties in der Registry landen würden. Dann könnten diese Eigenschaften ja nur auf der Maschine verwertet werden können, in deren Registry sie eingetragen worden sind.
Mau hat geschrieben:Wie macht man das - XRayen?
Man benutzt das
X-Ray Tool für Entwickler
→
https://wiki.documentfoundation.org/Macros
→
http://dvd.de.libreofficebox.org/entwicklung/
Gruß
lorbass
Re: Sind Fenstergrößen für Dokumente individuell einstellbar
Verfasst: So 3. Aug 2014, 19:12
von Mau
Liebe(r) lorbass,
danke für deine Antwort.
lorbass hat geschrieben:Mau hat geschrieben:Ich vermute, dass das eine Einstellung der Registry ist. Ist das richtig?
Nein, was du da vermutest, ist falsch. In der
Windows-Registry werden Informationen über den Rechner, die eingerichteten Benutzer, Windows und die installierten Programme gespeichert. Es wäre ja geradezu absurd, wenn
DocumentProperties in der Registry landen würden. Dann könnten diese Eigenschaften ja nur auf der Maschine verwertet werden können, in deren Registry sie eingetragen worden sind.
Ja, so ähnlich hatte ich mir das tatsächlich vorgestellt, weil die Fensterposition und -größe in diesem Fall ja eine Einstellung des jeweiligen Anwenders ist. Ich möchte den, der meine Datei als nächster verwendet (in dem Fall zur Übersetzungskontrolle), ja nicht zwingen, dieselbe Fenstereinstellung zu verwenden. (Aber möglicherweise habe ich das wieder falsch verstanden.)
Tja, ich habe mich in Sachen Computer und Software ja schon in vieles eingearbeitet. Aber das geht dann in eine Ebene hinunter, die ich nicht mehr beherrschen lernen werde.
Gruß,
Mau
Re: Sind Fenstergrößen für Dokumente individuell einstellbar
Verfasst: Di 5. Aug 2014, 01:02
von gogo
gogo hat geschrieben:...
Alternativ kann das Dokument natürlich auch Benutzerdefinierte Eigenschaften speichern, diese verstaust Du am Besten irgendwo/irgendwie unter
Die kann man beim Start des Dokumentes auslesen und dann eben alles Mögliche damit anstellen.
...
oops das wurde vermutlich missverstanden.
.UserDefinedProperties sind Eigenschaft(en) des Dokumentes die der User vollkommen frei definiert - eine Seriennummer, ein spezieller Text den man nicht im Dokument selbst darstellen möchte, oder eben Informationen die man für die Fenstergröße verwendet.
Man kann damit aber KEINE Information hinterlegen die das System
per se ausliest und als Standardwert für irgendwas verwendet, das muss man dann schon selbst programmieren.
Für die Fenstergröße wäre das dann etwa so:
Beim Erstellen des Formulars überlegt sich der Programmierer: 500 Pixel Breite und 350 Pixel Höhe wären gut, die Zoomstufe soll 120% sein und die Symbolleisten und das Menü sollen ausgeblendet werden. Also erstellt er eine Eigenschaft mit einem neuen Namen "FirmaXYZ_FensterDeko" und füllt sie bei diesem Dokument mit folgendem Text:
"500,350,120,KeinMenue"
Beim Speichern des Dokumentes wird diese Info also mit abgespeichert, ohne dass der User an der "normalen" Oberfläche etwas erkennen kann. Unter Datei/Eigenschaften/Benutzerdefinierte Eigenschaften wird er aber folgende Zeile sehen:

- BenDefEigenschaft.png (20.7 KiB) 10681 mal betrachtet
Nun muss man nur noch die mitgespeicherte Info benutzen - d.h. ein Makro schreiben, dass beim Öffnen des Dokumntes diese Info ausliest und verarbeitet.
z.B.:
Code: Alles auswählen
Sub Autostartmakro
'Auslesen der Werte und Speichern in der Variable aWerte
aWerte() = SPLIT(ThisComponent.DocumentProperties.UserDefinedProperties.FirmaXYZ_FensterDeko, ",")
' Verarbeitung der Fenstergroesse und der Zoomstufe
call FenstergroesseSetzen( aWerte(0), aWerte(1) , aWerte(2) )
' Die Sub "FenstergroesseSetzen" im Post oben habe ich editiert - man kann ihr die zu setzenden Werte jetzt uebergeben.
' Aendern der Fensterdekoration:
call FensterAussehenEinstellen( aWerte(3) )
' die Sub "FensterAussehenEinstellen" sollte mit dem Wert "KeinMenue" etwas anfangen koennen :)
end sub
(Ich hab jetzt keine Programmierumgebung - daher ist der Code nicht getestet!)
Wenn die "Sub Autostartmakro" also abläuft, dann wird das Dokument mit den festgesetzten Werten dargestellt.
gogo hat geschrieben:...
oder so ähnlich - musst Du XRayen
Download hier:
http://bernard.marcelly.perso.sfr.fr/index2.html
Installation per Klick, wenn man den Button im Dokument findet. Anwendungsbeispiele: siehe bei der Suchmaschine Deiner Wahl.
Re: Sind Fenstergrößen für Dokumente individuell einstellbar
Verfasst: Di 5. Aug 2014, 11:19
von Mau
Liebe(r) gogo,
danke für die ganzen Informationen. Ich habe jetzt erst einmal eine Benutzerdefinierte Einstellung hinzugefügt und die beiden Subroutinen an eine meiner Makrodateien angehängt.
Ausprobieren kann ich das Ganze erst später.
Aber vorab schon eine Frage noch:
Wie sorgt man dafür, dass der Autostartmakro gleich beim Öffnen der Datei abgearbeitet wird?
Gruß,
Mau
Re: Sind Fenstergrößen für Dokumente individuell einstellbar
Verfasst: Mi 6. Aug 2014, 00:17
von gogo
unter Extras/Anpassen/Ereignisse dem Ereignis "Dokument öffnen" das Makro zuweisen
Re: Sind Fenstergrößen für Dokumente individuell einstellbar
Verfasst: Mi 6. Aug 2014, 09:42
von Mau
OK, Dank dir!
(Wenn alles funktioniert hat und ich mich nicht noch einmal melden muss, gleich doppelt ...

)
Gruß,
Mau