Wie kann ich ein Fenster von hidden wieder sichtbar machen?

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Wie kann ich ein Fenster von hidden wieder sichtbar machen?

Re: Wie kann ich ein Fenster von hidden wieder sichtbar mach

von MikeRo » Mo, 28.02.2011 17:07

Und hier die Lösung des Problems :)

einfach an der Stelle, an der das durch das Makro bearbeitete Dokument wieder sichtbar gemacht werden soll diese Zeile einfügen

Code: Alles auswählen

oDoc.getCurrentController.getFrame.getContainerWindow().setVisible(true)
LG
Mike

Re: Wie kann ich ein Fenster von hidden wieder sichtbar mach

von MikeRo » Mo, 28.02.2011 13:42

Ich habe das gleiche Problem

Ich öffne ein Dokument versteckt, mache einige Datenbankabfragen etc. Nur keine ahnung wie ich es am Ende wieder sichtbar bekomme.

Code: Alles auswählen

Sub Dokument
   url=converttourl("Z:\Programme\Vorlagen für Makros\Vorlage.ods")
   Dim DocProps(1) As New com.sun.star.beans.PropertyValue
   DocProps(0).Name = "AsTemplate"
   DocProps(0).Value = True
   DocProps(1).Name = "Hidden"
   DocProps(1).Value = True
   oDoc = StarDesktop.loadComponentFromURL(url,"_blank", 0, DocProps)
   oDoc.lockControllers   
End Sub 
Ich habe etwas gegoogelt, da wurde gesagt man solle anstatt von Hidden, Minimized nehmen. Das geht auch und das Dokument ist auch nicht zu sehen, aber wie bekomme ich es am ende wieder Maximiert?

Re: Baseformular versteckt öffnen

von geimist » So, 21.06.2009 23:53

versteckt öffnen kann ich das Formular inzwischen so (nehme ich zumindest an, da ich es ja nicht sehe, aber es kommt auch kein Fehler):

Code: Alles auswählen

Sub xxxTESTxxx_hidden_OEFFNEN

Dim Context AS Object
Dim Conn As Object
Dim DB As Object
Dim FormDoc As Object
Dim Args(2) As New com.sun.star.beans.PropertyValue
Dim FormName As String
       
FormName = "xxxTESTxxx"
Context=CreateUnoService("com.sun.star.sdb.DatabaseContext")
DB=Context.getByName("DB")
Conn=DB.getconnection("","")

Args(0).Name="ActiveConnection"
Args(0).Value=Conn
Args(1).Name="OpenMode"
Args(1).Value="open"
Args(2).Name="Hidden"
Args(2).Value=true

FormDoc=DB.DatabaseDocument.FormDocuments.loadComponentFromURL(FormName,"_self",2,Args())

End Sub
Über das Startereigniss blende ich dann über folgenden Code die Symbolleisten aus und ändere die Framegröße:

Code: Alles auswählen

sub SYMBOLLEISTEN_AUSBLENDEN 'Hoehe 700 px

' exit Sub
'	Menuleiste ausblenden:
	Dim oDoc, oLayout, oGr, oWin As Object 'oEditWin, oEGr oFrame,
	Dim TBar As String
	
	lClosed = false
	oWin = ThisComponent.getCurrentController().getFrame().getContainerWindow()
	oGr = oWin.getPosSize() 'urspruengliche Fenstergroesse auslesen
	'Position und Größe ändern:
	ThisComponent.getCurrentController().getFrame().getContainerWindow().setPosSize(oGr.X, oGr.Y, oGr.width, 700, com.sun.star.awt.PosSize.HEIGHT) 
	oDoc = ThisComponent.CurrentController.Frame 'Menubar ausblenden
	oLayout = oDoc.LayoutManager
	TBar="private:resource/menubar/menubar"
	
	If oLayout.IsElementVisible(TBar) Then oLayout.hideElement(TBar)

	ThisComponent.CurrentController.Frame.LayoutManager.setVisible(false) ' Symbolleisten ausblenden
	ThisComponent.getCurrentController().getFrame().getContainerWindow().setFocus() 'Fenster in den Vordergrund setzten

End Sub
Greift das Startereigniss eigentlich, wenn man ein Dokument hidden öffnet, und wenn ja, wie setze ich hier hidden auf false???
(Meine Frage schließt weniger auf ein Problem als mehr auf eine Wissenslücke :? )

Wie kann ich ein Fenster von hidden wieder sichtbar machen?

von geimist » Fr, 19.06.2009 16:50

Hallo zusammen,

ich öffne in Base alle Formulare von einem Startformular aus nach folgendem Muster:

Code: Alles auswählen

Sub OPENFORM

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 = "FORMULAR"
Context=CreateUnoService("com.sun.star.sdb.DatabaseContext")
DB=Context.getByName("DB")
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

Jetzt möchte ich allerdings das geöffnete Formular versteckt öffnen um anschließend durch das Startereignis ausgelöst im neu geöffnetem Formular die Größe zu ändern sowie die Symbolleisten auszublenden. Erst danach möchte ich das neue Formular sichtbar schalten.

Wie kann ich die Sichtbarkeit steuern? (Alle anderen Aufgaben sind bereits implementiert) Am einfachsten wäre ja die Sichtbarkeit über visible=false zu steuern, aber das greift ja erst nach dem Öffnen des Fensters (selbst wenn ich das visible schon in das obige Makro einbinde), und genau diesen Effekt möchte ich vermeiden. Nicht sichtbar laden kann man wohl mit hidden - aber wie und wie kann man es dann wieder sichtbar schalten?

Vielen Dank schon mal.

Nach oben