nicht modale Dialoge

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: nicht modale Dialoge

von Birdy27 » Mi, 14.03.2007 11:21

Hallo Thomas,

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
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

von Toxitom » Sa, 10.03.2007 18:48

Hey Klaus,
der aufruf des dailogs mit .visible() ist ohne wirkung. kann das sein?
Hmm, so ja. Sorry, da war ich wieder zu schnell und habe zu viel vorausgesetzt. Der korrekte Befehl lautet:

Code: Alles auswählen

oDlg.setVisible(true)
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

Code: Alles auswählen

Sub Main
	dialoglibraries.loadlibrary("Standard")
	oDlg = createUnoDialog(dialogLibraries.Standard.Dialog1)
	oDlg.setVisible(true)
End Sub
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 ;-)

Code: Alles auswählen

Sub Main
	dialoglibraries.loadlibrary("Standard")
	oDlg = createUnoDialog(dialogLibraries.Standard.Dialog1)
	oDlg.setVisible(true)
        wait(2000)
End Sub

Gruss
Thomas

von kannenklaus » Sa, 10.03.2007 18:02

hallo thomas,

der aufruf des dailogs mit .visible() ist ohne wirkung. kann das sein?

grüße
klaus

von Toxitom » Do, 08.03.2007 21:28

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

nicht modale Dialoge

von Birdy27 » Do, 08.03.2007 09:22

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

Nach oben