Fenster minimieren

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

Moderator: Moderatoren

geimist
****
Beiträge: 191
Registriert: Fr, 15.02.2008 16:10

Fenster minimieren

Beitrag von geimist »

Hallo,

da man ja nun mit der Version 3.1 auch in Base-Dateien (.odb) Makros direkt einbinden kann, möchte ich beim öffnen der Datenbankdatei gleich mein Startformular öffnen. Das funktioniert mit nachstehenden Code auch problemlos.
Nun suche ich noch eine Ergänzung dafür, dass das Hauptfenster der Datenbank gleich in die Taskleiste minimiert wird. Dabei möchte ich den selben Effekt nutzen, wie das Minimieren-Icon am oberen rechten Fensterrand (man kann ja wohl mit „hidden“ ein Fenster komplett ausblenden, aber ich möchte bei Bedarf noch darauf zugreifen können.)

Also, wenn mir jemand dabei behilflich wäre, den Code etwas zu ergänzen, wäre ich wirklich dankbar.

Code: Alles auswählen

Sub STARTFORMULAR

Dim Context AS Object
Dim Conn As Object
Dim DB As Object
Dim FormDoc As Object
Dim Args(1) As New com.sun.star.beans.PropertyValue
Dim FormName As String

FormName = "STARTFORMULAR"
Context=CreateUnoService("com.sun.star.sdb.DatabaseContext")
DB=Context.getByName("DATENBANKNAME")
Conn=DB.getconnection("","")
Args(0).Name="ActiveConnection" : Args(0).Value=Conn
Args(1).Name="OpenMode" : Args(1).Value="open"
FormDoc=DB.DatabaseDocument.FormDocuments.loadComponentFromURL(FormName,"_self",2,Args) REM << BASIC-Laufzeitfehler.
FormDoc.CurrentController.Frame.ContainerWindow.setFocus()
End Sub

Es geht ja in Version 3.1 nun wohl einfacher: http://wiki.services.openoffice.org/wik ... res_in_3_1

Code: Alles auswählen

Sub Startformular
ThisDatabaseDocument.FormDocuments.getByName( "Startformular" ).open 
End Sub
Gruß
Stephan

LibreOffice 5.3 - MAC OS/X 10.11
eBayer
******
Beiträge: 556
Registriert: Do, 04.12.2008 14:33
Wohnort: Augsburg

Re: Fenster minimieren

Beitrag von eBayer »

Hallo,
ich vermute mal, daß Du das Fenster (die IDE) deshalb minimieren willst, damit ein NUR-Anwender nicht so offensichtlich an der Anwendung herumpfuscht.
Falls Du das willst, habe ich dafür eine Lösung über ein externes Formular zum Start der Anwendung. Das Startformular entfernt sich unmittelbar nach dem Start selbständig aus dem Speicher und die IDE ist komplett ausgeblendet (nicht nur verkleinert). In der Anwendung gibt es dann ein Menu (Formular mit PushButtons) zum Aufruf der einzelnen Formulare oder Reports. Zudem gibt es keinerlei System-Menu's in den Formularen, sodaß kein Anwender etwas an der Anwendung verändern kann.
Wenn Du daran interessiert bist, schicke ich Dir gerne die Lösung in Form eines kleinen Beispielprogramms und eine kleine Anleitung. Hat bereits jemand aus diesem Forum erfolgreich als Basis für seine Anwendung eingesetzt.
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
geimist
****
Beiträge: 191
Registriert: Fr, 15.02.2008 16:10

Re: Fenster minimieren

Beitrag von geimist »

Das kling ja schon mal sehr interessant. Das von Dir geschilderte Szenario trifft zum Teil zu, aber zum anderen hat es auch für mich persönlich Vorteile von rein optischer Natur, da ich täglich mit der Datenbank arbeite - ich benötige in der Regel aber nur die Formulare. Ab und zu muss ich selber aber schon mal an die Einstellungen heran kommen.

Deine Lösung würde ich mir schon mal gerne anschauen. Danke für dein Angebot.
Gruß
Stephan

LibreOffice 5.3 - MAC OS/X 10.11
eBayer
******
Beiträge: 556
Registriert: Do, 04.12.2008 14:33
Wohnort: Augsburg

Re: Fenster minimieren

Beitrag von eBayer »

schau mal rein.....
Steht alles im ZIP-Archiv. Habe das Programm bereits unter 3.1 konvertiert.
Gruß und viel Erfolg
eBayer
Dateianhänge
Anleitung.zip
(56.08 KiB) 405-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
geimist
****
Beiträge: 191
Registriert: Fr, 15.02.2008 16:10

Re: Fenster minimieren

Beitrag von geimist »

Erst einmal vielen Dank für Deine Mühe. Ich werde es heute nicht mehr schaffen, mich mit deinem Packet zu beschäftigen.

Für die Zeile Code, um das Fenster zu minimieren, wäre ich dennoch dankbar (wenn möglich).
Gruß
Stephan

LibreOffice 5.3 - MAC OS/X 10.11
eBayer
******
Beiträge: 556
Registriert: Do, 04.12.2008 14:33
Wohnort: Augsburg

Re: Fenster minimieren

Beitrag von eBayer »

Das folgende Beispiel minimiert das aktuelle Formular......
Auf der Basis mußt Du halt etwas testen.


Declare Function ShowWindow Lib "user32.dll" _
(ByVal hwnd&, ByVal nCmdShow&) As Boolean

Sub FormularAusblenden
Dim oFrame As Object
Dim handle
oFrame = ThisComponent.CurrentController.Frame
oMenuWin = oFrame.ContainerWindow()
handle = oMenuWin.getWindowHandle(dimarray(), 1) ' 1 = WIN32
ShowWindow( handle, 2 ) ' ' 1 = SW_NORMALIZE / 2 = SW_ICONIZE / 3 = SW_MAXIMIZE
End Sub
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
geimist
****
Beiträge: 191
Registriert: Fr, 15.02.2008 16:10

Re: Fenster minimieren

Beitrag von geimist »

Hallo eBayer,

vielen Dank für Deine Hilfe. Den Code musste ich ja gar nicht mehr anpassen - er funktioniert wunderbar :D . Ich habe ihn lediglich um das Öffnen des Startformulars ergänzt. Jetzt funktioniert es schon mal so, wie ich mir es vorgestellt habe.
Was Deine komplexere Lösung angeht, so werde ich mich noch mal in Ruhe damit beschäftigen.
Gruß
Stephan

LibreOffice 5.3 - MAC OS/X 10.11
robma
Beiträge: 1
Registriert: Mi, 03.02.2016 09:32

Re: Fenster minimieren

Beitrag von robma »

Hallo eBayer,
habe genau dieses Code-Schnipsel gesucht. Vielen Dank!. Dein Zip-Archiv werde ich mir bei Gelegenheit auch noch mal ansehen.
Gruß
robma

P.S.: Ich benutze es mit LibreOffice 4.4.5.2 unter Win 7/64
Rocko
*******
Beiträge: 1164
Registriert: Do, 11.10.2012 13:19

Re: Fenster minimieren

Beitrag von Rocko »

robma hat geschrieben:Hallo eBayer,
habe genau dieses Code-Schnipsel gesucht. Vielen Dank!
In Memoriam!

viewtopic.php?f=16&t=31801&p=126880&hil ... bs#p126880
Hast du schon mal einen Blick in die Writer-FAQ und in die Calc-FAQ des Forums geworfen?
Für jeden vor dem Beginn seiner Seminararbeit ein unbedingtes MUSS: http://openoffice-uni.org/
Antworten