WAIT() bei com.sun.star.awt.XMouseListener

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: WAIT() bei com.sun.star.awt.XMouseListener

Re: WAIT() bei com.sun.star.awt.XMouseListener

von mikeleb » Do, 27.02.2020 12:42

Hallo,
interessant ist auch folgendes: Ich hatte zwischendurch mal GetSystemTicks() in die Sub eingebaut. Dann wird die Sub zum mousepressed-ereignis irgendwie gar nicht mehr abgearbeitet. Ich vermute mal, dass sich dann intern verschiedene Ereignisse gegenseitig blockieren oder aufheben.

Re: WAIT() bei com.sun.star.awt.XMouseListener

von Stephan » Do, 27.02.2020 09:39

ich weiß zwar nicht warum, aber wenn du die Dialogvariable als Global deklarierst klappt es.
das ist sehr interessant und war mir selbst nicht aufgefallen. Danke.


Gruß
Stephan

Re: WAIT() bei com.sun.star.awt.XMouseListener

von Stephan » Do, 27.02.2020 09:38

das funktioniert und zeigt sogar ab z=0 eine Stoppuhr an ... meistens (leider nicht zuverlässig).
es braucht für meine Zwecke keine genaue Zeitmessung, nur etwas Verzögerung


Gruß
Stephan

Re: WAIT() bei com.sun.star.awt.XMouseListener

von mikeleb » Mi, 26.02.2020 21:33

Hallo,
ich weiß zwar nicht warum, aber wenn du die Dialogvariable als Global deklarierst klappt es. Für das Beenden des Dialogs kommst du dann auch ohne die Variable beenden aus.
Dateianhänge
Dialogtest.ods
(13.13 KiB) 152-mal heruntergeladen

Re: WAIT() bei com.sun.star.awt.XMouseListener

von erikafuchs » Mi, 26.02.2020 17:09

Lieber Stephan,
vielleicht hilft es Dir weiter. Ich hatte das Problem auch. Beim Klick auf "nächste Aufgabe" in einem Dialog wollte ich den Dialog kurz ausblenden:

Code: Alles auswählen

sub AufgWeiter
	dDialog.SetVisible(false)
print
	wait 3000
print
	dDialog.SetVisible(true)
	z=-2
	AWeiter=1
end sub
das Programm wird auch bei mir hier nicht für 3 Sekunden angehalten (sieht man bei print/print). Ich musste das anders lösen (hat aber auch noch nicht zuverlässig geklappt. Ich habe es auf eine do .. loop Schleife zurückgeführt (die bei Dir ja auch da ist). Da ist einmal diese:

Code: Alles auswählen

  	do while not aWeiter
	    wait 100
	loop
	Aweiter=0
.. die funktioniert zusammen mit dem Aweiter=1
Es gibt bei mir aber noch eine Schleife:

Code: Alles auswählen

		dDialog.SetVisible(false)
		oDialog.setVisible(True)
		aweiter=0
		z=-2
		DialogeAuf=1
		do while DialogeAuf
			dDialog.getControl("Stoppuhr").text=z
			if z>=0 then dDialog.SetVisible(True)
			wait 1000
			z=z+1
		loop
		dDialog.SetVisible(false)
		oDialog.setVisible(false)
... das funktioniert und zeigt sogar ab z=0 eine Stoppuhr an ... meistens (leider nicht zuverlässig). Ich sehe aber das Problem in diesen do ... loop Schleifen.
... vielleicht hilft es Dir was

WAIT() bei com.sun.star.awt.XMouseListener

von Stephan » Di, 25.02.2020 07:46

Hallo,

ich erzeuge einen Dialog mit Label-FEldern zur Laufzeit und registriere für jedes Labelfeld einen Listener:

Code: Alles auswählen

'...
oListener = CreateUnoListener("CheckAction_", "com.sun.star.awt.XMouseListener")

'...

With oDialog1
  '...
  .getControl("Test" & nummer).addMouseListener(oListener)
End With

'...

Sub CheckAction_mouseEntered(rueck)
	Dim s1
	Dim akt_i
	Dim fvh
	Dim ctr
	
	rueck.Source.Model.Border = 2
	
	For i = 0 To UBOUND(Colors())
		If rueck.Source.Model.BackgroundColor = sv.getByName(Colors(i)) Then
			fvh = Colors(i)
			Exit For
		End If
	Next i

	
	oDialog1.Title = fvh 'rueck.Source.Model.BackgroundColor

End Sub

Sub CheckAction_mouseExited( oEvent As Object )
	oEvent.Source.Model.Border = 1
End Sub

Sub CheckAction_mouseReleased( oEvent As Object )
End Sub

Sub CheckAction_mousePressed( oEvent As Object )
	Wait 3000
	oDialog1.Title = oEvent.Source.Model.BackgroundColor
End Sub

Leider wird "Wait 3000" in CheckAction_mousePressed nicht beachtet bzw. ausgeführt.


Wie erzwinge ich eine Pause/Verzögerung nach dem Mausklick?



Gruß
Stephan
Dateianhänge
Dialogtest.ods
(11.93 KiB) 128-mal heruntergeladen

Nach oben