[gelöst] CurrentSelection bei mehreren Fenstern desselben...

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

wasi99
Beiträge: 5
Registriert: Sa, 01.02.2014 18:00

[gelöst] CurrentSelection bei mehreren Fenstern desselben...

Beitrag von wasi99 »

Ich verwende u.a. folgendes simples Makro, um die einfach gewellte Unterstreichung per Tastatur-Shortcut auf eine beliebige Auswahl in Writer anzuwenden:

Code: Alles auswählen

Sub ToggleUnderlineWave
If ThisComponent.CurrentSelection.getByIndex(0).CharUnderline = 10 then
   ThisComponent.CurrentSelection.getByIndex(0).CharUnderline = 0
Else
rem If it was not Wave, then set it
   ThisComponent.CurrentSelection.getByIndex(0).CharUnderline = 10
End if
Die gleichen Methoden verwende ich auch für ein paar andere komplexere Formatierungen. Das funktioniert auch prächtig.

...Solange ich das Dokument nur in einem Fenster offen habe. Oft bearbeite ich ein Writer Dokument aber in mehreren Fenstern zur gleichen Zeit (Fenster>neues Fenster). Dann laufen meine Makros nur noch korrekt ab, wenn ich sie im ersten, "originalen" Fenster aufrufe. Wenn ich sie hingegen in einem anderen Fenster der gleichen Dokuments aufrufe erhalte ich "BASIC-Laufzeitfehler. Objektvariable nicht belegt.".

Ich ahne, dass dann OO mit die ThisComponent.CurrentSelction irgendwie nicht mehr richtig zuordnen kann. Wir schreibe ich meine Makros so um, dass sie aus allen Fenstern ausführbar werden?


_____
LO 4.2.0.4 unter OS X 10.7.5
Zuletzt geändert von wasi99 am Sa, 10.05.2014 19:24, insgesamt 1-mal geändert.
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: CurrentSelection bei mehreren Fenstern desselben Dokumen

Beitrag von komma4 »

Gar nicht.

Ich bekomme mit AOO zwar keine Exception, aber auch kein Ergebnis.

Auch in einem weiteren Fenster des Dokuments wird die currentSelection korrekt erkannt (MRI), aber die Aktion nicht ausgeführt.
Scheint ein Bug zu sein.

[habe auch mit StarDesktop.currentComponent.currentSelection getestet :( ]
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Karolus
********
Beiträge: 7535
Registriert: Mo, 02.01.2006 19:48

Re: CurrentSelection bei mehreren Fenstern desselben Dokumen

Beitrag von Karolus »

Hallo

Die aktuelle Selektion bei einem WriterDokument mit mehreren offenen Fenstern:

Code: Alles auswählen

doc = XSCRIPTCONTEXT.getDocument()
frame_selection = doc.CurrentController.Frame.Controller.Selection.getByIndex(0)
if frame_selection.CharUnderline == 10:
    frame_selection.CharUnderline = 0
else:
    frame_selection.CharUnderline = 10
Nach Basic übersetzt:

Code: Alles auswählen

doc = ThisComponent
frame_selection = doc.CurrentController.Frame.Controller.Selection.getByIndex(0)
if frame_selection.CharUnderline = 10 then
    frame_selection.CharUnderline = 0
else
    frame_selection.CharUnderline = 10
end if
@Winfried: kein Bug - vmtl. ist ...CurrentSelection nur eine Abkürzung solange nur ein Fenster offen ist.

Karolus
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: CurrentSelection bei mehreren Fenstern desselben Dokumen

Beitrag von komma4 »

Karolus hat geschrieben:

Code: Alles auswählen

doc = ThisComponent
frame_selection = doc.CurrentController.Frame.Controller.Selection.getByIndex(0)
Sehr schön
Karolus hat geschrieben:kein Bug
Na ja: wenn die (berechtigte) Erwartung des Anwenders (hier: dann wg. fehlender, unzureichender Dokumentation) nicht erfüllt wird... ist es ein Bug
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
wasi99
Beiträge: 5
Registriert: Sa, 01.02.2014 18:00

Re: CurrentSelection bei mehreren Fenstern desselben Dokumen

Beitrag von wasi99 »

Danke, Karolus, das funtkioniert!! ((LO ist zwar eben grad abgestürzt beim rumprobieren, aber davon sehen wir mal ab, es funktioniert *grundsätzlich*))

Meiner Meinung nach auch nicht wirklich ein Bug, ich habe so eine Lösung fast erwartet. Allerdings ist diese Lösung hier die universalere und wäre daher als 'Standard' sinnvoll.
Antworten