Seite 1 von 1

Bereich ein/ausblenden mit Bedingung

Verfasst: Fr, 14.08.2015 19:30
von clag
Hallo Writers,

einen benanten Bereich im Writer Document möchte ich per Mausklick ein/ausblenden, ohne Basic dafür zu bemühen.
Hat da jemand eine Idee ob und wie man das realisieren kann, gibt es irgend ein Element zum anklicken,
mit dem man die Bedingung für den Bereich auf true/false setzen kann ?

Re: Bereich ein/ausblenden mit Bedingung

Verfasst: Sa, 15.08.2015 09:20
von miesepeter
Hallo,
siehe Beispiele mit Quellenangaben. Mit "benannten" Bereichen meinst du wohl solche, die einen Namen tragen?
BereicheAusblenden_ooowiki.de.odt
(61.75 KiB) 279-mal heruntergeladen
aus: http://www.ooowiki.de/Bereiche.html

siehe auch: http://www.openoffice-forum.de/viewtopic.php?f=2&t=4341 und Datei von F3K total: http://www.openoffice-forum.de/download ... 033501a641

Ciao

Re: Bereich ein/ausblenden mit Bedingung

Verfasst: Sa, 15.08.2015 10:21
von clag
Hallo miesepeter,

danke für deine Antwort und Beispiel Dateien bzw Links, das geht genau in die Richtung die ich angedacht habe,
nur wollte ich verhindern das Dokument aktiv verändern zu müssen, es wird erstellt und dann nur noch gelesen.
Darum dachte ich an irgendeine Mausklick Aktion, aber ich fürchte das geht wohl doch nicht ohne Makro.

Re: Bereich ein/ausblenden mit Bedingung

Verfasst: So, 16.08.2015 12:31
von Karolus
Hallo
per Mausklick ein/ausblenden, ohne Basic dafür zu bemühen
Alle Bedingungen erfüllt mit:

Code: Alles auswählen

import unohelper
import threading
from com.sun.star.awt import XMouseClickHandler
from com.sun.star.awt.MouseButton import LEFT





class Handler(unohelper.Base, XMouseClickHandler):
    
    """ Handles mouse click on the document. """
    def __init__(self, ctx, doc):
        self.ctx = ctx
        self.doc = doc
        self.register()

    def register(self):
        self.doc.getCurrentController().addMouseClickHandler(self)
     
    def unregister(self):
        """ Remove self from broadcaster. """
        self.doc.getCurrentController().removeMouseClickHandler(self)

    def disposing(self, ev):
        pass

    def mousePressed(self, ev):
        return False
        

   
    def mouseReleased(self, ev):
        if ev.Buttons == LEFT and ev.ClickCount == 2:            
            threading.Thread( target=self.switch_textsection ).start()            
        return False
    
  
    def switch_textsection(self):
    
        switch = self.doc.TextSections.getByName( "switch" ) # den Bereich brauchts
        switch.IsVisible = not switch.IsVisible
        
        


def set_Mouse_handle(*args):
    ctx = XSCRIPTCONTEXT.getComponentContext()
    doc = XSCRIPTCONTEXT.getDocument()
    global handler
    handler = Handler(ctx, doc) 
    
def stop_Mouse_handle(*args):
    global handler
    try:
        handler.unregister()
    except NameError:
        pass
    handler = None

Re: Bereich ein/ausblenden mit Bedingung

Verfasst: Mo, 17.08.2015 09:24
von clag
Hallo Karolus,

hehe da hast du natürlich Recht mit
Karolus hat geschrieben:Alle Bedingungen erfüllt mit:
hätte ich vielleich universeller den Begriff Script verwenden sollen.

Aber es geht so wie es aussieht sowiso nicht ohne Script.
Ich bin jetzt immer noch am knobeln wie ich mein Vorhaben umsetzte, am besten gefällt mir,
den Zusatztet als eigene Datei abzulegen und per Hyperlink aufzurufen nur bedeutet das bis zu 10 zusätzlich Dateien.
Das ist nicht schön fehlerträchtig und aufwendig.

Kann man beim Aufruf eine Datein einen Parameter übergeben der einen Bereich sichtbar macht?
Dann könnte ich alle Zusatztexte in einer Datei speichern und beim Aufruf den gewünschten Teil sichtbar machen.

Re: Bereich ein/ausblenden mit Bedingung

Verfasst: Mo, 17.08.2015 10:23
von Karolus
Hallo

Bisher war die Aufgabenstellung: blende einen benannten Bereich per Mausklick ein/aus.
jetzt schreibst du etwas von 10 verschiedenen [Dateien|Texten] die da irgendwie, irgendwo ausgewechselt werden sollen??

Beschreib doch einfach mal in einem neuen Thema um was es eigentlich geht, anstatt Fragen zur Umsetzung zustellen ohne Informationen zum Hintergrund zu geben.

Re: Bereich ein/ausblenden mit Bedingung

Verfasst: Mo, 17.08.2015 10:58
von clag
Hallo Karolus,

Grundsätzlich ist es eine Ich nenne es mal Basisinformation, 2-4 Seiten Inhalt auch mit Bildern
und zu einzelnen Punkten (1-15)sollen noch detailiertere Infos verfügbar gemacht werden jeweils 10 -100 Zeilen.

Naja, Ich hatte auch geglaubt das ein/ ausblenden von Bereichen sei die beste und einfachste Lösung.

Aber mit meinen Versuchen hat sich diese Ansicht geändert, zB weil abhängig von der jeweiligen Position des Cusors
im Dokument unterschiedliche Ansichten entstehen mal am Ende mal am Anfang des eingeblendeten Textes.

Ideal wären auch unterschiedlich Schriften da die Zusatzinfos Texttabellen ähnlich sind also ein MonoZeichensatz optimal ist.

Am besten funktioniert es mit verlinkten Dateien, das neue Fenster popt im Vordergrund auf und wenn ich es schließe
bin ich wieder genau da im Basis-Dok wo ich vorher war, nur die etlichen zusätzlichen Dateien gefallen mir garnicht.
Bei 1000 Basis Dateien sind das 5-10k zusätzlich Dateien.

Was mir jetzt gerade noch durch den Kopf geht, vieleicht ein Dialog als große msgbox und die versteckten Bereiche damit anzeigen?

Du siehst ich weiß selber noch nicht genau wie es werden soll, bzw bin von meiner ursprünglichen Idee nicht mehr überzeugt.