Hallo Thomas,
erst mal ein herzliches Danke für Deine Untersuchungen, Analysen und
Ergebnisse :-)) !!!
Aber was ich absolut nicht verstehe, was hat das Ganze mit dem
Benutzerprofil zu tun ?
Mit meinem alten Benutzerprofil funktioniert es (unabhängig von den LO
Versionen) und mit einem neu angelegten Benutzerprofil tritt der Fehler
auf (unabhängig von den LO Versionen). Wie kann das Benutzerprofil
(unterschwellig) auf dieses Timing Einfluss nehmen ? Das "schnüffelt"
für mich schon ein wenig nach BUG ... oder habe ich da etwas in Deinen
Ausführungen völlig falsch verstanden ?
Ich habe jetzt mal Deinen "Wait(500)"-Vorschlag mit meinen
Parallel-Installationen [ 5.3.7.2 (x64) + 6.1.0.3 (x64) ] - die ja das
von "Separate Install GUI" bereitgestellte Benutzerverzeichnis nutzen -
getestet - und ja, mit dem "Wait(500)" tritt dann auch in dieser
Situation der Fehler nicht mehr auf.
Im Prinzip habe ich ja das Problem nicht mehr, da ich ja wieder mein
altes Benutzerprofil nutze.
Aber andererseits bedeutet das Ergebnis dann aber, dass jeder, der
LibreOffice auf seinem PC das erste Mal installiert - und damit auch ein
nigelnagelneues Benutzerprofil erhält - mit genau diesem Problem
konfrontiert wird - oder ?
Gruß
Hans-Werner ;-))
------ Originalnachricht ------
Von: "Thomas Krumbein" <thomas.krumb...@documentfoundation.org>
An: users@de.libreoffice.org
Gesendet: 09.08.2018 17:05:28
Betreff: Re: [de-users] BASIC-Makro @ CALC - Cursor-Positionierung
Hallo Hans-Werner,
nun war ich doch neugierig und hab das mal getestet mit ner frischen
6.1 - und ja, Ich kann Dein Verhalten bestätigen.
Also mal tiefer "analysiert" - und alles sieht gut aus.
Ich denke, es ist einfach ein Timing-Problem. Betrachte ich mir im
Objektinspektor die Inhalte der aktuellen Zelle etc... passt alles.
ich denke, die Anweisung
oD.CurrentController.Select(oTB.getCellByPosition(4,0))
wird einfach schon ausgeführt, bevor die Visibility fertig gestellt ist
- ud schwupp ist eben die Zelle (4,0) die erste sichtbare.
Hab einfach eine wait-Anweisung ergänzt und alles läuft wie gewünscht.
...
oD.getCurrentController().getFrame().getContainerWindow().setVisible(True)
wait(500)
oD.CurrentController.Select(oTB.getCellByPosition(4,0))
...
Vielleicht reicht Dir das ja...
VG
Thomas
Am 09.08.2018 um 14:19 schrieb OoOHWHOoO:
Hallo Thomas,
ich habe jetzt mal folgende Tests Durchgeführt:
[1] Das Systemabbild vom 30.07.2018 zurück eingespielt.
[2] Mit dem zurück eingespielten Systemabbild steht nun wieder die
alte LO-Version mit Download- und Installationsdatum 05.11.2017 zur
Verfügung:
Version: 5.3.7.2 (x64)
Build-ID: 6b8ed514a9f8b44d37a1b96673cbbdd077e24059
CPU-Threads: 4; BS-Version: Windows 6.1; UI-Render: Standard;
Layout-Engine: neu;
Gebietsschema: de-DE (de_DE); Calc: group
[3] Ausführung des Makros (siehe [12]) mit aus-kommentierter Zeile
»oTB.getCellByPosition(0,0).String = "Cursor"«. Alles bestens. Die
Spalten werden NICHT nach links weg geschoben. Alle 5 Spalten sind
sichtbar.
[4] Anschließend habe ich LO beendet, mein LO-Benutzerprofil an einen
anderen Ort verschoben und LO wieder gestartet. LO hat erwartungsgemäß
eine neues Benutzerprofil angelegt.
[5] JETZT ABER: Ausführung des Makros (s.u.) mit oder ohne
aus-kommentierter Zeile »oTB.getCellByPosition(0,0).String =
"Cursor"«. Der Fehler tritt in beiden Fällen auf. Die Spalten werden
nach links verschoben, so dass links oben in der Ecke die Zelle "E1"
angezeigt wird.
[7] Anschließend habe ich jetzt noch mit der "Separate Install GUI" LO
"5.3.7.2 (x64)" parallel installiert. Es ist exakt die selbe
LO-Version wie die des standardmäßig installierten LO (siehe [2]),
aber eben ohne "mein" LO-Benutzerverzeichnis.
Version: 5.3.7.2 (x64)
Build-ID: 6b8ed514a9f8b44d37a1b96673cbbdd077e24059
CPU-Threads: 4; BS-Version: Windows 6.1; UI-Render: Standard;
Layout-Engine: neu;
Gebietsschema: de-DE (de_DE); Calc: CL
[8] Genau der selbe Fehler wie unter [5] beschrieben.
[9] Anschließend habe ich das neue LO installiert - unter Beibehaltung
meines (alten) standardmäßigen Benutzerprofils:
Version: 6.0.6.2 (x64)
Build-ID: 0c292870b25a325b5ed35f6b45599d2ea4458e77
CPU-Threads: 4; BS: Windows 6.1; UI-Render: Standard;
Gebietsschema: de-DE (de_DE); Calc: group
[10] Fehlerfreie Ausführung des Makros wie unter [3].
[1] Vorläufige Folgerungen
[11.1] Der Fehler tritt NUR DANN NICHT auf, wenn das standardmäßige
(alte) LO-Benutzerprofils zum Tragen kommt. In allen anderen Fällen -
"neu angelegtes Benutzerprofil" oder "Benutzerprofil der
Parallelinstallation" - tritt der Fehler auf. Eine Abhängigkeit von
der genutzten LO-Version ist nicht ersichtlich.
[11.2] Wenn Du Dein Benutzerprofil von LO neu anlegen lässt, solltest
Du den Fehler reproduzieren können.
[11.3] Ich habe keinen Schimmer, wo da das Problem mit den von LO neu
angelegten Benutzerprofilen liegen könnte.
[12] Test-Makro
Sub SetCursor_loadComponent
Dim oD as Object
Dim oTB as Object
Dim aB() as String
Dim X as Integer
aB = Array("A","B","C","D","E")
Const P1 = "private:factory/scalc"
Const P2 = "_blank"
Const P3 = 0
Dim aPV(0) as New com.sun.star.beans.PropertyValue
aPV(0).name = "Hidden"
aPV(0).value = True
oD = StarDesktop.loadComponentFromURL(P1,P2,P3,aPV())
oTB = oD.sheets(0)
For X=0 To UBound(aB) Step 1
oTB.getCellByPosition(X,0).String = aB(X)
Next X
' oTB.getCellByPosition(0,0).String = "Cursor" ' Kommentiert, weil
nicht wirklich notwendig !
oD.getCurrentController().getFrame().getContainerWindow().setVisible(True)
oD.CurrentController.Select(oTB.getCellByPosition(4,0))
End Sub
Gruß
Hans-Werner ;-))
-- 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
--
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