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

Antwort per Email an