Formular und Zoom
Moderator: Moderatoren
Formular und Zoom
Hallo,
ich hab da ein kleines Problem bei der Gestaltung von Formularen. Und zwar kann ich ja bei Entwürfen von neuen Formularen die Beschriftungen und Eingabefelder in der Größe und Postition anpassen. Ein Zoomen ist bei Formularen nur über die Maus möglich (STRG + Mausrad). Ich hab das nun auch schon mehrmals so verändert. Aber ich hätte nun gerne, dass ich das auch wieder auf 100% stellen kann, weiss aber nicht, wie und wo ich das machen kann. Oder wo ich sehen kann, welcher Zoom denn nun gerade eingestellt ist. Ich möchte nämlich eigentlich mehrere Formulare für eine Anwendung erstellen, die von der Gestaltung gleich sind. Irgendwie bereitet mir das so aber Probleme, da ich nicht mehr weiss, welche Ansicht denn nun "normal" ist. Kann man das irgendwo wieder resetten oder genau einstellen? Wie löst ihr das, wenn ihr mehrere Formulare gestalten wollt, die so ziemlich gleich aussehen sollen?
Gruss
Bert
ich hab da ein kleines Problem bei der Gestaltung von Formularen. Und zwar kann ich ja bei Entwürfen von neuen Formularen die Beschriftungen und Eingabefelder in der Größe und Postition anpassen. Ein Zoomen ist bei Formularen nur über die Maus möglich (STRG + Mausrad). Ich hab das nun auch schon mehrmals so verändert. Aber ich hätte nun gerne, dass ich das auch wieder auf 100% stellen kann, weiss aber nicht, wie und wo ich das machen kann. Oder wo ich sehen kann, welcher Zoom denn nun gerade eingestellt ist. Ich möchte nämlich eigentlich mehrere Formulare für eine Anwendung erstellen, die von der Gestaltung gleich sind. Irgendwie bereitet mir das so aber Probleme, da ich nicht mehr weiss, welche Ansicht denn nun "normal" ist. Kann man das irgendwo wieder resetten oder genau einstellen? Wie löst ihr das, wenn ihr mehrere Formulare gestalten wollt, die so ziemlich gleich aussehen sollen?
Gruss
Bert
OpenOffice 3.1.1 unter Debian 5.0 und mit PostgreSQL 8.3
Re: Formular und Zoom
Hallo Bert,
da bin ich mal wieder....
Ich denke, das hier suchst Du.
Gruss eBayer
Function setZoom()
if ThisComponent.supportsService("com.sun.star.text.TextDocument") then
ThisComponent.CurrentController.ViewSettings.ZoomValue=100
end if
End Function
da bin ich mal wieder....
Ich denke, das hier suchst Du.
Gruss eBayer
Function setZoom()
if ThisComponent.supportsService("com.sun.star.text.TextDocument") then
ThisComponent.CurrentController.ViewSettings.ZoomValue=100
end if
End Function
Intel(R) Core(TM)2 Quad CPU Q8200 @ 2.33GHz mit 4 GB Memory (3,2 GB aktiv)
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
Re: Formular und Zoom
Hallo eBayer,
dachte schon, du wanderst zu einem anderen Forum ab...
Aber hier war ja auch ein paar Tage geschlossen. Gut dass es jetzt wieder geht.
Mit deinem Code kann ich per Macro den Zoom wieder auf 100% setzen? Das müsste ich dann bei jedem Öffnen eines Formulars aufrufen, oder? Dann könnte ich zum Start eines Formulares den Zoom, die Grösse und die Position des Formulars setzen. Wie machst du das eigentlich? Gestaltest du deine Formulare alle mit 100% und schaust dann mit dem Code, dass sie auch so angezeigt werden? Weil irgendwie muss man ja überlegen, wie das alles angeordnet wird und später beim Anwender angezeigt wird.
Gruss
Bert
dachte schon, du wanderst zu einem anderen Forum ab...

Mit deinem Code kann ich per Macro den Zoom wieder auf 100% setzen? Das müsste ich dann bei jedem Öffnen eines Formulars aufrufen, oder? Dann könnte ich zum Start eines Formulares den Zoom, die Grösse und die Position des Formulars setzen. Wie machst du das eigentlich? Gestaltest du deine Formulare alle mit 100% und schaust dann mit dem Code, dass sie auch so angezeigt werden? Weil irgendwie muss man ja überlegen, wie das alles angeordnet wird und später beim Anwender angezeigt wird.
Gruss
Bert
OpenOffice 3.1.1 unter Debian 5.0 und mit PostgreSQL 8.3
Re: Formular und Zoom
Hallo Bert,
das Problem hatte ich auch, zumal sich mit jeder Bearbeitung des Formulars ohne erkennbare Regel die Größe verändert.
Über die Feststellung der Bildschirmauflösung habe wir ja bereits miteinander geschrieben.... ich habe diese in einer INI-Datei hinterlegt.
Ich habe deshalb folgendes getan: (ist umständlich, aber eine bessere Lösung habe ich nicht gefunden)
1. Das Formular optimal im EditModus ausgerichtet und mir dann vom Formular die Größe verraten lassen
Dafür habe ich ein kleines Makro geschrieben welches ich einmalig in der MainRoutine jedes Formulars aufrufe:
Sub ShowWindowSize(ThisComponent)
Dim aWindowSize As New com.sun.star.awt.Rectangle ' make a special Variable
aWindowSize = ThisComponent.CurrentController.Frame.ContainerWindow.getPosSize
msgbox aWindowSize.width ' wird bei iBreit verwendet
msgbox aWindowSize.height ' wird bei iHoch verwendet
End Sub
2. Die auf diese Weise festgestellte Größe verwende ich beim Aufruf des Formulars
oForm = container.loadComponentFromURL(sForm,"_blank",0,args())
xForm = oForm.getCurrentController().getFrame().getContainerWindow()
xForm.setPosSize( iXPos, iYPos, iBreit, iHoch , 15 )
iXPos und iYPos habe ich aufgrund der Bildschirmauflösung und der Felder iBreit und iHoch errechnet, um das Formular zu zentrieren.
3. danach kommt dann, erst in der Main-Routine des gestarteten Formulars, die Routine setZoom() zum Einsatz.
Damit wird dann das Formular in den unter 2. definerten Rahmen hineingezoomt.
Das Ergebnis: egal, ob jemand im Writer mit der ScrollMaus gezoomt hat oder auch nicht, wird immer die optimale Formulargröße mit dem optimalen Zoomfaktor hergestellt.
Gruß eBayer
das Problem hatte ich auch, zumal sich mit jeder Bearbeitung des Formulars ohne erkennbare Regel die Größe verändert.
Über die Feststellung der Bildschirmauflösung habe wir ja bereits miteinander geschrieben.... ich habe diese in einer INI-Datei hinterlegt.
Ich habe deshalb folgendes getan: (ist umständlich, aber eine bessere Lösung habe ich nicht gefunden)
1. Das Formular optimal im EditModus ausgerichtet und mir dann vom Formular die Größe verraten lassen
Dafür habe ich ein kleines Makro geschrieben welches ich einmalig in der MainRoutine jedes Formulars aufrufe:
Sub ShowWindowSize(ThisComponent)
Dim aWindowSize As New com.sun.star.awt.Rectangle ' make a special Variable
aWindowSize = ThisComponent.CurrentController.Frame.ContainerWindow.getPosSize
msgbox aWindowSize.width ' wird bei iBreit verwendet
msgbox aWindowSize.height ' wird bei iHoch verwendet
End Sub
2. Die auf diese Weise festgestellte Größe verwende ich beim Aufruf des Formulars
oForm = container.loadComponentFromURL(sForm,"_blank",0,args())
xForm = oForm.getCurrentController().getFrame().getContainerWindow()
xForm.setPosSize( iXPos, iYPos, iBreit, iHoch , 15 )
iXPos und iYPos habe ich aufgrund der Bildschirmauflösung und der Felder iBreit und iHoch errechnet, um das Formular zu zentrieren.
3. danach kommt dann, erst in der Main-Routine des gestarteten Formulars, die Routine setZoom() zum Einsatz.
Damit wird dann das Formular in den unter 2. definerten Rahmen hineingezoomt.
Das Ergebnis: egal, ob jemand im Writer mit der ScrollMaus gezoomt hat oder auch nicht, wird immer die optimale Formulargröße mit dem optimalen Zoomfaktor hergestellt.
Gruß eBayer
Intel(R) Core(TM)2 Quad CPU Q8200 @ 2.33GHz mit 4 GB Memory (3,2 GB aktiv)
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
Re: Formular und Zoom
Hallo eBayer,eBayer hat geschrieben:Hallo Bert,
das Problem hatte ich auch, zumal sich mit jeder Bearbeitung des Formulars ohne erkennbare Regel die Größe verändert.
Über die Feststellung der Bildschirmauflösung habe wir ja bereits miteinander geschrieben.... ich habe diese in einer INI-Datei hinterlegt.
das mit dem Auslesen der Bildschirmauflösung klappt eigentlich ganz gut. Es fehlt halt nur jeweils ein Pixel pro Breite und Höhe (vielleicht ein Unterschied, ob von 0 oder von 1 angefangen wird zu zählen):
Code: Alles auswählen
Sub ScreenSize
oDisplayAccess = CreateUnoService("com.sun.star.awt.DisplayAccess")
oDisplay = oDisplayAccess.getByIndex(0)
aRect = oDisplay.WorkArea
iResolutionX = aRect.Width
iResolutionY = aRect.Height
End Sub
Ansonsten unterscheidet sich bei deiner Lösung nicht mehr viel zu meiner. Aber ich bin trotzdem noch etwas unzufrieden. Man merkt nämlich, dass das aufgerufene Formular erst in einer anderen Grösse, Position und Zoom angezeigt wird, welches sich dann in Sekundenbruchteilen in das gewünschte Formular umwandelt. Aber es ist eben doch noch sichtbar und als kurzes Aufflackern wahrnehmbar. Eigentlich nicht gerade optimal. Schöner wäre es, wenn es gleich so angezeigt wird, wie ich es auch haben möchte.
Gruss
Bert
OpenOffice 3.1.1 unter Debian 5.0 und mit PostgreSQL 8.3
Re: Formular und Zoom
Das könnte ein Weg sein, um das Aufflackern des Formulars beim Start zu verhindern.
Laden des Dokuments als Hidden:
Dim Props(0) As New com.sun.star.beans.PropertyValue
Props(0).Name="Hidden" : Props(0).Value=True
Stardesktop.loadComponentFromURL(url,"_blank",0,Props())
Schau mal HIER nach!
http://user.services.openoffice.org/en/ ... 20&t=11096
Habe grad keine Zeit..... kannst Du mich auf dem Laufenden halten, ob es klappt?
Beiliegend mal was zur Entspannung.... gestern voll in ooBasic programmiert.
Gruß eBayer
Laden des Dokuments als Hidden:
Dim Props(0) As New com.sun.star.beans.PropertyValue
Props(0).Name="Hidden" : Props(0).Value=True
Stardesktop.loadComponentFromURL(url,"_blank",0,Props())
Schau mal HIER nach!
http://user.services.openoffice.org/en/ ... 20&t=11096
Habe grad keine Zeit..... kannst Du mich auf dem Laufenden halten, ob es klappt?
Beiliegend mal was zur Entspannung.... gestern voll in ooBasic programmiert.
Gruß eBayer
- Dateianhänge
-
- Schieben.odt
- (11.53 KiB) 99-mal heruntergeladen
Intel(R) Core(TM)2 Quad CPU Q8200 @ 2.33GHz mit 4 GB Memory (3,2 GB aktiv)
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
Re: Formular und Zoom
Hallo eBayer,eBayer hat geschrieben:Das könnte ein Weg sein, um das Aufflackern des Formulars beim Start zu verhindern.
Laden des Dokuments als Hidden:
Dim Props(0) As New com.sun.star.beans.PropertyValue
Props(0).Name="Hidden" : Props(0).Value=True
Stardesktop.loadComponentFromURL(url,"_blank",0,Props())
Schau mal HIER nach!
http://user.services.openoffice.org/en/ ... 20&t=11096
Habe grad keine Zeit..... kannst Du mich auf dem Laufenden halten, ob es klappt?
was muss ich denn bei URL eintragen? Ich hab ja keine Datei, sondern ein internes Formular in einer Base-Anwendung, welches ich angezeigt haben möchte. Ansonsten bin ich mir nicht sicher, ob das das richtige war. Ich möchte das Formular ja nicht komplett verstecken.
Bisher hatte ich ja:
Code: Alles auswählen
Sub OpenForm(sForm)
Dim oCurrentController
oCurrentController = ThisDatabaseDocument.CurrentController
oFormularSemester = oCurrentController.loadComponent(com.sun.star.sdb.application.DatabaseObject.FORM, sForm, False)
End Sub
Gruss
Bert
P.S. Dein programmiertes Spielchen ist echt cool. Ein kleines Problemchen: die Zeitanzeige in der Titelleiste ist bei mir etwas abgeschnitten. Ansonsten ein netter kleiner Zeitvertreib so für nebenher. Muss nur schauen, dass ich da nicht hängen bleibe, da ich auch gerade viel zu viel zu tun habe. Zu allem Unglück hat sich gerade mein PC beim Einschalten mit einem Feuerwerk (Blitzen, Funken, Zischen, Knallen und stinkendem Qualm) verabschiedet. Wahrscheinlich das Netzteil. Jetzt hab ich nur noch das Notebook...

OpenOffice 3.1.1 unter Debian 5.0 und mit PostgreSQL 8.3
Re: Formular und Zoom
Hallo Bert,
so wie Du es machst, ist es schon ok - "sForm" ist also der Formularname aus der Anwendung.
Hidden bedeutet, daß das Formular zwar geladen, aber zunächst versteckt wird.
Nach meinem Verständnis müsstest Du dann in der Main-Routine des Formulars das Formular nach Abschluss aller Aktivitäten auf visible=true setzen:
thiscomponent.CurrentController.Frame.ContainerWindow.setVisible(true)
Wenn die Überlegungen so stimmen, würde damit das Flackern und das Aufzeigen des Formulars in der zunächst noch falschen Größe vermieden werden, weil das ja alles passiert, während das Formular versteckt ist. Hab das aber noch nicht probiert, aber es liest sich gut.
Gruß eBayer
so wie Du es machst, ist es schon ok - "sForm" ist also der Formularname aus der Anwendung.
Hidden bedeutet, daß das Formular zwar geladen, aber zunächst versteckt wird.
Nach meinem Verständnis müsstest Du dann in der Main-Routine des Formulars das Formular nach Abschluss aller Aktivitäten auf visible=true setzen:
thiscomponent.CurrentController.Frame.ContainerWindow.setVisible(true)
Wenn die Überlegungen so stimmen, würde damit das Flackern und das Aufzeigen des Formulars in der zunächst noch falschen Größe vermieden werden, weil das ja alles passiert, während das Formular versteckt ist. Hab das aber noch nicht probiert, aber es liest sich gut.
Gruß eBayer
Intel(R) Core(TM)2 Quad CPU Q8200 @ 2.33GHz mit 4 GB Memory (3,2 GB aktiv)
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
Re: Formular und Zoom
OK, ich teste das mal und melde mich dann wieder...
OpenOffice 3.1.1 unter Debian 5.0 und mit PostgreSQL 8.3
Re: Formular und Zoom
Hmm, so klappt das jedenfalls nicht. Das Formular flackert weiterhin auf. Ist das mit den Props denn so richtig?
Code: Alles auswählen
Sub OpenForm(sForm)
Dim oCurrentController
Dim Props(0) As New com.sun.star.beans.PropertyValue
Props(0).Name="Hidden" : Props(0).Value=True
oCurrentController = ThisDatabaseDocument.CurrentController
oFormularSemester = oCurrentController.loadComponent(com.sun.star.sdb.application.DatabaseObject.FORM, sForm, False, Props())
End Sub
OpenOffice 3.1.1 unter Debian 5.0 und mit PostgreSQL 8.3
Re: Formular und Zoom
ok, ich probiere es auch mal.... allerdings nicht mehr heute.
Gruss eBayer
Gruss eBayer
Intel(R) Core(TM)2 Quad CPU Q8200 @ 2.33GHz mit 4 GB Memory (3,2 GB aktiv)
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
Re: Formular und Zoom
Hey, ich hatte es geschafft, aber es kam keine Meldung, Gratulation oder sonst etwas...eBayer hat geschrieben:Beiliegend mal was zur Entspannung.... gestern voll in ooBasic programmiert.
Gruß eBayer
Gruss
Bert
OpenOffice 3.1.1 unter Debian 5.0 und mit PostgreSQL 8.3
Re: Formular und Zoom
jetzt schon..... tataaaa
unten rechts muß leer sein, wenn fertig.
Gruss eBayer
unten rechts muß leer sein, wenn fertig.
Gruss eBayer
- Dateianhänge
-
- Schieben.odt
- (11.53 KiB) 82-mal heruntergeladen
Intel(R) Core(TM)2 Quad CPU Q8200 @ 2.33GHz mit 4 GB Memory (3,2 GB aktiv)
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
Re: Formular und Zoom
OK, und jetzt noch eine speicherbare Rankingliste, damit meine Rekorde auch verewigt bleiben.
Die Zeit ist in der Titelleiste jetzt auch bei mir wunderbar zusehen.

OpenOffice 3.1.1 unter Debian 5.0 und mit PostgreSQL 8.3