Hallo,
wie kann ich denn dafür sorgen, dass ein Dialog zwar angezeigt wird, aber nicht verhindert, dass man im Dokument umher klickt (insbesondere eine andere Zeile im Datenquellenbrowser selektiert werden kann)?
Grüße
Christoph
nicht modale Dialoge
Moderator: Moderatoren
Hey Christoph,
in dem du den Dialog nicht mit execute() aufrufst, sondern mit visible(). Dadurch wird er zwar angezeigt, blockiert aber nicht alle anderen Fenster. Du kannst dann also den Fokus wechseln
Viele Grüße
Thomas
in dem du den Dialog nicht mit execute() aufrufst, sondern mit visible(). Dadurch wird er zwar angezeigt, blockiert aber nicht alle anderen Fenster. Du kannst dann also den Fokus wechseln

Viele Grüße
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
-
- *****
- Beiträge: 319
- Registriert: Mi, 14.12.2005 08:08
- Wohnort: freising - oder dort, wo das bier herkommt
Hey Klaus,
Das öffnett dir den Dialog, solange noch ein Prozess läuft, ohne den Fokus zu übernehmen. Läuft aber kein Basic-Programm mehr, dann wird der Dialog auch automatisch wieder geschlossen.
Falls du es also nur ausprobiert hast mit
Dann wird er zwar auch geöffnet, aber auch gleich wieder geschlossen - das Makro ist ja fertig! Jetzt ist der Programmierer selbst verantwortlich für die einzelnen Prozesse. ERgänze das ganze um eine Zeile, dann siehst du die Wirksamkeint 
Gruss
Thomas
Hmm, so ja. Sorry, da war ich wieder zu schnell und habe zu viel vorausgesetzt. Der korrekte Befehl lautet:der aufruf des dailogs mit .visible() ist ohne wirkung. kann das sein?
Code: Alles auswählen
oDlg.setVisible(true)
Falls du es also nur ausprobiert hast mit
Code: Alles auswählen
Sub Main
dialoglibraries.loadlibrary("Standard")
oDlg = createUnoDialog(dialogLibraries.Standard.Dialog1)
oDlg.setVisible(true)
End Sub

Code: Alles auswählen
Sub Main
dialoglibraries.loadlibrary("Standard")
oDlg = createUnoDialog(dialogLibraries.Standard.Dialog1)
oDlg.setVisible(true)
wait(2000)
End Sub
Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Hallo Thomas,
danke für deine Beschreibung.
Ich möchte gerne dass das Fenster offen bleibt, bis eine gewisse Funktion aufgerufen wird.
Problem ist nur, falls der Dialog nicht mehr sichtbar ist, soll die Routine aber auch beendet werden. Nur wie mache ich das. ".visible" ist readonly und ein isVisible() gibt es leider nicht.
(Und so richtig schön finde ich meine Lösung mit der while Schleife nicht, um den Dialog offen zu lassen.)
Grüße
Christoph
danke für deine Beschreibung.
Ich möchte gerne dass das Fenster offen bleibt, bis eine gewisse Funktion aufgerufen wird.
Code: Alles auswählen
do until (beendet=true)
wait(500)
loop
(Und so richtig schön finde ich meine Lösung mit der while Schleife nicht, um den Dialog offen zu lassen.)
Grüße
Christoph