BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!

❤️ DANKE >><< DANKE ❤️

> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

eigener Dialog oder Formular

Alles zur Programmierung im LibreOffice.
Antworten
chemnitzer
Beiträge: 43
Registriert: Di 20. Jan 2015, 18:56
Wohnort: Hungen

eigener Dialog oder Formular

Beitrag von chemnitzer » Fr 3. Sep 2021, 11:15

Hallo, bisher habe ich Makros nur im Writerdokument mit den benötigten Konstanten, wie Dateiname u.a. fest eingetragen.
Die Datei beinhaltet eine List von Bildern, welche dann per Makro in das Dokument eingefügt werden. Das funktioniert auch.
Ich habe jetzt einen eigenen Dialog für die Auswahl der Datei erstellt und er Dateiname wird in einer globalen Variablen abgespeichert. Wie kann ich jetzt das Makro welches im Dokument gespeichert ist (Bilder einfügen) starten ? Denn so lange der Dialog geöffnet ist habe ich keinen Zugriff auf das Dokument.
Gibt es eine Hilfe zu der weiteren Anwendung von Dialogen ?
MfG
Roland

Benutzeravatar
karolus
Beiträge: 2170
Registriert: Fr 10. Dez 2010, 10:01

Re: eigener Dialog oder Formular

Beitrag von karolus » Fr 3. Sep 2021, 20:07

Wenn ich dich richtig verstanden habe solltest du deinen eigenen Dialog einfach vergessen und stattdessen am Anfang deines Makros im Writerdokument folgendes einfügen:

Code: Alles auswählen

auswahl = createunoservice("com.sun.star.ui.dialogs.OfficeFilePicker")
d = auswahl.execute()
if d then
    datei_url = auswahl.Files(0)
end if
'hier kommt dein restlicher Code bei dem du den konstanten Pfad gegen "datei_url" tauscht
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.3.2 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)

chemnitzer
Beiträge: 43
Registriert: Di 20. Jan 2015, 18:56
Wohnort: Hungen

Re: eigener Dialog oder Formular

Beitrag von chemnitzer » Sa 4. Sep 2021, 11:10

Hallo Karolus,
danke für die schnelle Antwort. Das wäre eine Lösung. Ist es überhaupt möglich aus einem Dialog heraus ein Makro zu starten, welches in einem Dokument abgespeichert ist und Zugriff auf das Dokument hat ? Ich habe jetzt folgendes versucht : Makro ist im Dokument hinterlegt und im Dialog die Dateiauswahl, welche in globalen Variablen beim schließen des Dialogs abgespeichert werden. Dann kann ich das Makro mit Zugriff auf die globalen Variablen starten.
Was bringt es wenn ein Dialog den Zugriff auf das Dokument blockiert ? Oder kann man das umgehen ?
Mfg
schönes Wochenende wünscht
Roland

Benutzeravatar
karolus
Beiträge: 2170
Registriert: Fr 10. Dez 2010, 10:01

Re: eigener Dialog oder Formular

Beitrag von karolus » Sa 4. Sep 2021, 13:16

Hm
Irgendwie klingt dein Ansinnen etwas schräg … wenn du den Dialog selbst im Dokument speicherst hat der natürlich auch Zugriff auf andere Makros die im selben Dokument gespeichert sind.
Zugriff auf andere Dokumente respective deren Makros sind möglicherweise per Hyperlink-url möglich, da müsste ich aber erst mal suchen nach der genauen Syntax.
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.3.2 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)

chemnitzer
Beiträge: 43
Registriert: Di 20. Jan 2015, 18:56
Wohnort: Hungen

[gelöst]Re: eigener Dialog oder Formular

Beitrag von chemnitzer » Mo 6. Sep 2021, 18:17

Hallo
ich habe es so gelöst wie im Buch "Makro Grundlagen Band 2" von Thomas Krumbein.
Seite 430 :
ein bFlag auf False gesetzt, den Dialog nur anzeigen mit oDlg2.setvisible(true) und dann noch eine Scheife die ihn sichtbar hälte. Eine Sub endDialog wo das bFlag auf true gesetzt wird, wenn ein bestimmter Button gedrückt wird. Der Speicher wird mit dispose freigegeben.
Damit kann ich dann weitere Makros über den Dialog starten, welche z.B. Bilder , Hyperlinks u.ä. in das Textdokument eintragen.

MfG und Danke für die Antworten
Roland

mikele
Beiträge: 1642
Registriert: Mo 1. Aug 2011, 20:51

Re: eigener Dialog oder Formular

Beitrag von mikele » Mo 6. Sep 2021, 18:57

Hallo,
Damit kann ich dann weitere Makros über den Dialog starten, welche z.B. Bilder , Hyperlinks u.ä. in das Textdokument eintragen.
Ich vermute mal, dass du hier mit "Dialog" nicht deinen Dialog, sondern den programminternen Dialog Makros meinst.
Du kannst natürlich, was der übliche weg wäre, z. B. Schaltflächen auf deinem Dialog einrichten, die das gewünschte Makro aufrufen (oder auch den programminternen Makrodialog selbst).
Gruß,
mikele

chemnitzer
Beiträge: 43
Registriert: Di 20. Jan 2015, 18:56
Wohnort: Hungen

Re: eigener Dialog oder Formular

Beitrag von chemnitzer » Di 7. Sep 2021, 18:28

Hallo,
ich glaube wir reden aneinander vorbei.
Hier mal ein Bild von meinem Dialog :
Dialog.jpg
Dialog.jpg (44.92 KiB) 2061 mal betrachtet
Zu den verschiedenen Buttons sind Makros in der Bibliothek hinterlegt. Teilweise ist der Code geändert aus dem Forum genommen. Dateiauswahl und Anzeige, globale Variablen belegen und Anzeigen funktioniert, weil diese Funktionen keinen Zugriff auf das geöffnete Textdokument brauchen. Dagegen die Makros hinter den Vorspann-, Hauptteil-, Stichwortverz- und Nachspann-EINFÜGEN funktionieren aus dem Dialogfenster nicht. Werden sie aber über Makroausführen gestartet dann geht es. Der Dialog ist ja aktiv und ich hab keine Ahnung wie ich daraus auf das geöffnete leere Dokument zugreifen kann.
Lass ich den Dialog nur mit visible anzeigen (wie vorher beschrieben ) , dann kann ich die hinterlegten Makros aus dem "Dialog" starten. Wird der CommandButton1 gedrückt wird das bFlag auf true gesetzt -> Dialog verschwindet und Speicher wird mit dispose wieder freigegeben. Ich wollte den Dialog nicht zur Laufzeit mit Script erzeugen, sondern über die GUI erzeugen und verwenden.
Ich suche noch einen Tipp wie ich im geöffneten Dokument den Absatz mit Makro formatieren kann. Für die Seite kann ich schon eine andere Seitenvorlage drüberladen. Aber ähnliche Befehle hab ich für den Absatz nicht gefunden.

Viele Grüße
Roland

mikele
Beiträge: 1642
Registriert: Mo 1. Aug 2011, 20:51

Re: eigener Dialog oder Formular

Beitrag von mikele » Di 7. Sep 2021, 19:45

Hallo,
Dagegen die Makros hinter den Vorspann-, Hauptteil-, Stichwortverz- und Nachspann-EINFÜGEN funktionieren aus dem Dialogfenster nicht. Werden sie aber über Makroausführen gestartet dann geht es.
Was bedeutet "funktionieren nicht"? Werden sie nicht ausgeführt? Erscheint eine Fehlermeldung?
Zu den verschiedenen Buttons sind Makros in der Bibliothek hinterlegt.
In welcher Bibliothek?
... funktioniert, weil diese Funktionen keinen Zugriff auf das geöffnete Textdokument brauchen
Wie greifst du in deinen Makros auf das leere Dokument zu?
gehe ich richtig in der Annahme, dass du ein neues Dokument anlegst und dann deinen Dialog aufrufst? Das sollte problemlos klappen.
Gruß,
mikele

chemnitzer
Beiträge: 43
Registriert: Di 20. Jan 2015, 18:56
Wohnort: Hungen

Re: eigener Dialog oder Formular

Beitrag von chemnitzer » Di 7. Sep 2021, 22:37

Hallo,
ich muss mir das nochmal genau ansehen. Ich hatte noch eine Änderung der Seitenvorlage aufgenommen es kann sein, dass der Fehler davon kommt.
Aber erstmal Danke bis ich mich melde.

MfG
Roland

An alle, die das LibreOffice-Forum nutzen:


Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das Jahr 2024.
Einfach per Kreditkarte oder PayPal.
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.

❤️ Vielen lieben Dank für Ihre Unterstützung ❤️

Antworten