Hallo, > ANMERKUNG: > Ich selbst habe bei einem MAKRO im Kontext mit dem Öffnen einer CALC-Datei das Problem, wenn ich > den "Folder Picker Betriebs System" auswähle, dass das MAKRO einfriert, nicht aber, wenn ich den > "Folder Picker Open Office" auswähle. Nicht aber bei früheren LO-Versionen. Vielleicht besteht ja > ein Zusammenhang zu obigem Problem, dass die BASIC-MAKRO-Picker nicht mehr 100%ig funktionieren, ist > aber nur eine vage Vermutung: > ' Folder Picker Betriebs System: > Const FPBS = "com.sun.star.ui.dialogs.FolderPicker" > ' Folder Picker Open Office: > Const FPOO = "com.sun.star.ui.dialogs.OfficeFolderPicker"
Das Problem habe ich auch, es tritt seit Version 6.1 auf, vgl.: Bug 123502 - crash: use of "com.sun.star.ui.dialogs.FolderPicker" service from java seems to cause crashes since LO 6.1 https://bugs.documentfoundation.org/show_bug.cgi?id=123502 Irgendetwas stimmt mit dem System-Folder Picker nicht mehr.. Wenn Du ein ein einfaches Basic Makro Demo hast, füge es bitte dem issue bei. Gruß Oliver Am 31.03.2019 um 12:15 schrieb OoOHWHOoO:
Hallo, ich habe diesbezüglich auch mal ein wenig getestet: [1] Mit "Hidden" und "False" friert LO bei "MsgBox ("FileOperation: NACH StarDesktop.loadComponentFromURL")" ein (s.u.). [2] Mit "Hidden" und "True" friert LO bei "MsgBox ("NACH FileOperation")" ein (s.u.). In beiden Fällen hat "soffice.bin" eine CPU-Auslastung von zirka 25%. Bei diesen Zeilen ( >>>>> ) habe ich das Makro modifiziert (s.u.). Testumgebung: LO 6.2.2.2 (x64) @ Windows 7 Home Premium 64-bit. Eine Erklärung für das oben geschilderte Verhalten habe ich leider nicht. ANMERKUNG: Ich selbst habe bei einem MAKRO im Kontext mit dem Öffnen einer CALC-Datei das Problem, wenn ich den "Folder Picker Betriebs System" auswähle, dass das MAKRO einfriert, nicht aber, wenn ich den "Folder Picker Open Office" auswähle. Nicht aber bei früheren LO-Versionen. Vielleicht besteht ja ein Zusammenhang zu obigem Problem, dass die BASIC-MAKRO-Picker nicht mehr 100%ig funktionieren, ist aber nur eine vage Vermutung: ' Folder Picker Betriebs System: Const FPBS = "com.sun.star.ui.dialogs.FolderPicker" ' Folder Picker Open Office: Const FPOO = "com.sun.star.ui.dialogs.OfficeFolderPicker" Grüße Hans-Werner :-)) [3] Makro-Modifikationen Option Explicit >>>>> Private oDlgM as Object ' das Modell des Dialogs >>>>> Private oDlg as Object ' Dialogfenster >>>>> Private oMod as Object ' nimmt jeweils das Modell der Objekte auf (Textfeld) >>>>> Private oMod1 as Object ' nimmt jeweils das Modell der Objekte auf (Button) >>>>> Private oMod2 as Object ' nimmt jeweils das Modell der Objekte auf (Button) >>>>> Private oMod3 as Object ' nimmt jeweils das Modell der Objekte auf (Button) >>>>> Private oWin as Object >>>>> Private oListener1 as Object >>>>> Private oListener2 as Object >>>>> Private oListener3 as Object >>>>> Private oControl1 as Object >>>>> Private oControl2 as Object >>>>> Private oControl3 as Object REM Deklaration der Variablen >>>>> Private oDocW as Object ' Writer-Dokument >>>>> Private oDocC as Object ' Calc-Dokument (wird versteckt geöffnet) : : Sub Dateidialog On Error GoTo ErrorHandler MsgBox "Der nachfolgende Dateidialog fordert sie zum Öffnen dieser Datei auf:" & chr(10) & _ ">>> Kopfzeilen_Texte.ods <<<" & chr(10) & _ "Wählen Sie zunächst den korrekten Pfad zu dieser Datei aus." ,64,"Hinweis" ' Filepicker (Datei-Dialog) sUrl = FileOpenDialog ("Bitte wählen Sie eine Calc-Datei aus!") if sURL = "" then Msgbox "Sie haben den Dateidialog abgebrochen!" & chr(10) & _ "Starten Sie das Programm erneut und wählen eine Calc-Datei aus!", 48, "Fehler: Anwender hat Dateiauswahl abgebrochen!" exit sub end if sExt=getFileNameExtension(sURL) ' Fehlermeldung für den Fall, dass kein Calc-Dokument ausgewählt wurde if sExt <> "ods" then MsgBox("Bitte wählen Sie ein Calc-Dokument aus!" & chr(10) & _ "Das Programm wird beendet!" & chr(10) & chr(10) & _ "Starten Sie das Programm erneut.", 48, "Fehler: Dateiauswahl") exit sub end if REM Calc-Datei im Hintergrund öffnen >>>>> MsgBox ("VOR FileOperation") FileOperation >>>>> MsgBox ("NACH FileOperation") ' MsgBox "Error " & Err & ": " & Error$ & " (line : " & Erl & ")" 'oCC.getFrame().getContainerWindow().setVisible(True) Exit Sub REM ErrorHandler für den Fall, dass im Dateidialog auf "ABRUCH" geklickt wurde ErrorHandler: 'MsgBox "Error " & Err & ": " & Error$ & " (line : " & Erl & ")" Msgbox "Sie haben den Dateidialog abgebrochen!" & chr(10) & _ "Starten Sie das Programm erneut und wählen eine Calc-Datei aus!", 48, "Fehler: Anwender hat Dateiauswahl abgebrochen!" End Sub REM ════════════════════════════════════════════════════════════════════════════════════════════════════════ REM Calc-Datei im Hintergrund öffnen REM Dateioperation: Datei öffnen und auslesen Sub FileOperation 'oCC.getFrame().getContainerWindow().setVisible(False) ' Eigenschaften >>>>> Dim myFileProperties(0) As New com.sun.star.beans.PropertyValue ' Dokument im Hintergrund öffnen >>>>> myFileProperties(0).Name = "Hidden" >>>>> myFileProperties(0).Value = False REM ------------------------------------------------------------------------------------------------------- ' Datei im Hintergrund öffnen >>>>> MsgBox ("FileOperation: VOR StarDesktop.loadComponentFromURL") >>>>> sURL = ConvertToURL(sURL) >>>>> oDocC = StarDesktop.loadComponentFromURL(sURL, "_blank", 0, myFileProperties()) >>>>> MsgBox ("FileOperation: NACH StarDesktop.loadComponentFromURL") 'mri oDocC ' Daten aus Tabelle einlesen und in die Arrays verteilen ' mArray1() = Daten für die linke Seite (gerade Seitenzahl) mArray1()=oDocC.Sheets().getByName("KopfZeilenTexte").getCellRangeByName("A1:B10").getDataArray() ' mArray2() = Daten für die rechte Seite (ugerade Seitenzahl) mArray2()=oDocC.Sheets().getByName("KopfZeilenTexte").getCellRangeByName("A11:B20").getDataArray() REM ------------------------------------------------------------------------------------------------------- ' Calc-Datei korrekt schließen CALL CloseDocC End Sub
-- Liste abmelden mit E-Mail an: users+unsubscr...@de.libreoffice.org Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/ Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de Listenarchiv: https://listarchives.libreoffice.org/de/users/ Datenschutzerklärung: https://www.documentfoundation.org/privacy