filepicker funktioniert unter win7 nicht mehr

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: filepicker funktioniert unter win7 nicht mehr

Re: filepicker funktioniert unter win7 nicht mehr

von erikafuchs » Sa, 29.05.2010 13:55

turtle47 hat geschrieben:Hallo Pit,
Gebe dem Dialog den "appendFilter" mit dann sollte der Speichern-Dialog auch unter WIN7 funktionieren: :wink:
Lieber Jürgen,
das geht prima, danke!
Zunächst hat das nicht geklappt, da ich die Zeile mit dem FolderPicker statt dem FilePicker probiert habe und da klappt das nicht. Ansonsten hätte mir das mit dem FolderPicker, den ich bei DPunch neu kennengelernt habe, ja schon gut gefallen, weil da meine Schüler nicht den Dateinamen ändern können.
Vielen Dank
Pit
PS1.: Nochmal die Frage: Woher wisst ihr das alles, kann man das nachlesen oder muss man das mühsam ausprobieren?
PS2.: Entschuldigt, dass ich noch nicht früher reagiert habe, ich hatte ziemlich viel zu tun.

Re: filepicker funktioniert unter win7 nicht mehr

von DPunch » Di, 25.05.2010 16:43

Aloha

Versuch am besten erstmal die Variante von turtle47 - ich habe wie gesagt kein Windows 7 und dementsprechend auch keine Ahnung von derartigen Kniffen.

Sollte sein Vorschlag wider Erwarten nicht das gewünschte Ergebnis bringen, versuch mal folgenden Code:

Code: Alles auswählen

Sub SpeichernUnter
	Dim speicherDialog as Object
	Dim oFileAccess as Object
	Dim kPfad As String
	Dim sFilename as String
	Dim bSave as Boolean
	If NOT thisComponent.hasLocation Then
		Exit Sub
	End If
	If NOT Globalscope.BasicLibraries.isLibraryLoaded("Tools") Then
		Globalscope.BasicLibraries.loadLibrary("Tools")
	End If
	speicherDialog = CreateUnoService("com.sun.star.ui.dialogs.FolderPicker")
	sFilename = FilenameOutOfPath(thisComponent.URL)
	If speicherDialog.execute() = 1 Then
		kPfad = speicherDialog.Directory
		If Right(kPfad,1) = "/" Then
			kPfad = kPfad & sFilename
		Else
			kPfad = kPfad & "/" & sFilename
		End If
	End If
	bSave = True
	oFileAccess = createUnoService( "com.sun.star.ucb.SimpleFileAccess" )
	If oFileAccess.exists(kPfad) Then
		If MsgBox("Datei existiert bereits" & Chr(13) & "Überschreiben?", 49, "Datei existiert bereits") = 2 Then
			bSave = False
		End If
	End If
	If bSave Then
		Thiscomponent.storeasUrl(kPfad, Array())
	End If
End Sub

Re: filepicker funktioniert unter win7 nicht mehr

von erikafuchs » Fr, 21.05.2010 22:25

Lieber DPunch,
wenn ich das richtig verstanden habe, dann gibt es zwei verschiedene "FilePicker" oder "Folderpicker", eines von Windows und eines von oO. So weit habe ich das ausprobiert. Ich kenne jetzt das von XP und oO, das von Win7 funktioniert wohl nicht wie gewünscht. Jetzt habe ich aber keine Ahnung wie ich den mit dem FolderPicker Dialog gewählten Pfad wieder auslese, mit dem Dateiname verbinde und in den Befehl Thiscomponent.storeAsUrl() einsetze.
Grüße
Pit
PS.: Woher wisst Ihr das alles? Wo kann man das Nachlesen?

Re: filepicker funktioniert unter win7 nicht mehr

von turtle47 » Fr, 21.05.2010 19:46

Hallo Pit,
erikafuchs hat geschrieben: Kann mir jemand sagen, was ich ändern kann oder wie ich oO unter win7 dazu bringe den "filepicker" (heißt der so?) anzuzeigen.
Gebe dem Dialog den "appendFilter" mit dann sollte der Speichern-Dialog auch unter WIN7 funktionieren: :wink:

Code: Alles auswählen

   With speicherDialog
        .Initialize(arg())
        .appendFilter("OpenDocument Tabellendokument (.ods)", "*.ods")
        ....
Viel Erfolg.

Jürgen

Re: filepicker funktioniert unter win7 nicht mehr

von erikafuchs » Fr, 21.05.2010 18:48

Hey. das sieht gut aus!
Kannst du mir dann auch noch mit dem store Befehl helfen, der funktioniert so jetzt nicht mehr? Meine Schüler geben beim Programmstart ihren Namen ein und die Datei soll dann "Rechentrainer Vorname Nachname.ods" heißen.Der Dateiname wird in einem anderen Programmteil mit:

Code: Alles auswählen

         Speichername="Rechentrainer " & vorname & " " & nachname & ".ods"            
erzeugt. So habe ich jetzt die Speicherroutine umgebaut:

Code: Alles auswählen

Sub SpeichernUnter
   Dim speicherDialog as Object
   Dim kPfad As String
   Dim arg()
   kPfad = ThisComponent.URL
   arg = Array(com.sun.star.ui.dialogs.TemplateDescription.FILESAVE_AUTOEXTENSION)
   speicherDialog = CreateUnoService("com.sun.star.ui.dialogs.FolderPicker")
  speicherDialog.execute()
  Thiscomponent.storeAsUrl(datei, arg())
End Sub
Ich nehme an, ich muss jetzt noch ein Pfad angeben. Kannst du mir da nochmal helfen?
Grüße
Pit

Re: filepicker funktioniert unter win7 nicht mehr

von DPunch » Fr, 21.05.2010 17:45

Aloha

Wenn ich das richtig verstanden habe, funktioniert unter Windows Vista (und dann vermutlich auch unter Windows 7) der FolderPicker immer noch als Windows-Dialog.
Da ich noch mit XP arbeite, kann dazu nichts sagen, aber wenn dem so sein sollte, kannst Du ja einfach mit einem FolderPicker arbeiten, zumal der Dateiname ja sowieso nicht geändert werden soll - das wäre mit einem Folderpicker auch gar nicht mehr möglich.
Du musst halt mal schauen, ob Du, bzw eher Deine Schüler, mit dem Windows-FolderPicker-Dialog besser zurechtkommen als mit dem OpenOffice.org-FilePicker-Dialog.

Häkchen wieder weg bei OOo-Dialoge verwenden und das Makro mal ausführen:

Code: Alles auswählen

Sub FolderPickerTest
Dim speicherDialog as Object
speicherDialog = CreateUnoService("com.sun.star.ui.dialogs.FolderPicker")
speicherDialog.execute()
End Sub

Re: filepicker funktioniert unter win7 nicht mehr

von erikafuchs » Fr, 21.05.2010 17:06

Hurra, es geht! Vielen Dank. Ich hatte schon Ängste ich müsse in den Tiefen bohren.
Jetzt ist es so, dass hunderte von Schülern mit dem Programm arbeiten und immer mehr von ihnen Windows 7 installieren. Denen muss ich jetzt eine Gebrauchsanweisung schreiben - oder kann man diese Einstellung per Makro ändern?
Viele Grüße
Pit
PS.: Für meine Schüler war der "alte" Filepicker übersichtlicher, weil sie links ihren USB Stick oder ein Laufwerk wählen konnten. In Windows 7 habe ich mich noch nicht so eingearbeitet, hier muss man sich ja anscheinend Schritt für Schritt in der Ordnerstruktur zuerst zurück und dann wieder in den gewünschten Ordner hangeln - oder mache ich da etwas verkehrt?

Re: filepicker funktioniert unter win7 nicht mehr

von DPunch » Di, 18.05.2010 19:40

Aloha

Versuch mal, ob es geht, wenn Du unter

Extras -> Optionen -> OpenOffice.org -> Allgemein

das Häkchen bei "OpenOffice.org-Dialoge verwenden" setzt.

filepicker funktioniert unter win7 nicht mehr

von erikafuchs » Mo, 17.05.2010 23:02

Hallo ihr Lieben,
ich hoffe, Ihr könnt mir wieder mal helfen:
Ich habe ein (sehr umfangreiches) Makro geschrieben, mit dem meine Schüler Mathe üben müssen. Am Anfang müssen sie ihre Namen eingeben und dann einen Speicherort für ihre Datei suchen. Bei diesem Programmteil, in dem das Dateiauswahlfenster angezeigt wird, hat mir irgendwann mal jemand in diesem Forum geholfen. Unter XP geht das prima, unter win7 wird es nicht mehr ausgeführt (ohne Fehlermeldung). Hier der Code:

Code: Alles auswählen

Sub SpeichernUnter
   Dim speicherDialog as Object
   Dim datei, kPfad As String
   Dim DialogTyp(0)
   Dim arg()
   Dim antwort
   Dim args1(0) as new com.sun.star.beans.PropertyValue
   kPfad = ThisComponent.URL
   version=dSheet.getCellByPosition(6,1).string
   testJahrg=dSheet.getCellByPosition(7,0).value            
   arg = Array(com.sun.star.ui.dialogs.TemplateDescription.FILESAVE_AUTOEXTENSION)
   speicherDialog = CreateUnoService("com.sun.star.ui.dialogs.FilePicker")
   With speicherDialog
        .Initialize(arg())
        .SetMultiselectionMode(False)
        .setDisplayDirectory(ConvertToURL(kPfad()))
        .setDefaultName(Speichername)
        .SetTitle("Wähle den Ordner in dem du deine Datei speichern willst (Dateiname bitte nicht ändern)")
        .SetValue(com.sun.star.ui.dialogs.ExtendedFilePickerElementIds.CHECKBOX_AUTOEXTENSION, 0, true)
   End With
   antwort = speicherDialog.execute()
   If antwort = 1 Then
      datei = speicherDialog.Files(0)
      Thiscomponent.storeAsUrl(datei, args1())
   End If
End Sub
Kann mir jemand sagen, was ich ändern kann oder wie ich oO unter win7 dazu bringe den "filepicker" (heißt der so?) anzuzeigen.
Viele Grüße
Pit

Nach oben