Klicks auf "Schließen" mitzählen

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: Klicks auf "Schließen" mitzählen

Re: Klicks auf "Schließen" mitzählen

von erikafuchs » Mi, 25.06.2008 14:52

Vielen Dank für eure Hilfe!

Lieber Stefan,
Ggf. (ich bin im Moment nicht sicher) reicht es für DEine Zwecke wohl auch ein Makro an das ohnehin vorhandene lost-fokus Ereignis des Dialogs anzuhängen.
das Einfachste wäre es ja gewesen, wenn das "lost-focus" funktioniert hätte - geht aber leider nicht.
wenn du einen modalen Dialog verwendest kannst Du die normale Funktion des [x] unterdrücken und/oder ein Makro zuordnen.
Wenn ich das richtig verstehe, muss ich die Dialoge dann alle neu basteln?
Auch sollte es möglich sein das Schliessen-Ereignis eines normalen dialogs abzufangen indem Du einen entsprechenden Listener registrierst.

Wie man einen Listener einrichtet weiss ich leider nicht, kannst du das einem (erfahrenen) Anfänger (mir!) erklären?

Lieber Jürgen,
sonst werde ich mich an deinem Vorschlag orientieren. - Aber das mit dem Listener hätte ich ja auch gerne mal kapiert, das war für mich bisher aber "...Bahnhof?...".
Grüße
Pit

Re: Klicks auf "Schließen" mitzählen

von Stephan » Mi, 25.06.2008 10:50

kann ich diesem auch ein Makro zuordnen oder es ganz entfernen?
wenn du einen modalen Dialog verwendest kannst Du die normale Funktion des [x] unterdrücken und/oder ein Makro zuordnen.

Das Unterdrücken der Funktion von [x] geht beispielsweise so:

Code: Alles auswählen

Sub erzeuge_warten()
warten_model = CreateUnoService("com.sun.star.awt.UnoControlDialogModel")
warten_model.setPropertyValue("Width",  150) '343
warten_model.setPropertyValue("Height", 20)
warten_model.SetPropertyValue("Title","Bitte etwas Geduld")

oMod_warten = warten_model.createInstance("com.sun.star.awt.UnoControlFixedTextModel")
With oMod_warten
	.setPropertyValue("Name","warten1")
	.setPropertyValue("PositionX",5) '192
	.setPropertyValue("PositionY",5) 
	.setPropertyValue("Width",140)
	.setPropertyValue("Height",13)
	.setPropertyValue("Label","Formatierung wird gelesen ...")
	'.setPropertyValue("Align",1)
	'nicht verfügbar in OOo 1.x
	'.setPropertyValue("VerticalAlign",1)
End With
warten_model.insertByName("warten1", oMod_warten)
warten_dialog = CreateUnoService("com.sun.star.awt.UnoControlDialog")
warten_dialog.setModel(warten_model)

oWin2 = CreateUnoService("com.sun.star.awt.Toolkit")
warten_dialog.createPeer(oWin2, null)
warten_dialog.setVisible(True)
End Sub
Wie Du wweitere Steuerelemente auf einen solchen Dialog bekommst, also z.B. DEine SChaltfläche, und denen ggf. Makros zuordnest, kannst Du Dir im Code meiner Extension mottco ansehen:
http://www.calc-info.de/makros.htm#mottco

von der auch obriger Code entnommen ist.

Auch sollte es möglich sein das Schliessen-Ereignis eines normalen dialogs abzufangen indem Du einen entsprechenden Listener registrierst.

Ggf. (ich bin im Moment nicht sicher) reicht es für DEine Zwecke wohl auch ein Makro an das ohnehin vorhandene lost-fokus Ereignis des Dialogs anzuhängen.



Gruß
Stephan

Re: Klicks auf "Schließen" mitzählen

von turtle47 » Mi, 25.06.2008 10:02

Hi Pit,

meines Wissens nach kann man das "Schließen"-Kreuzchen nicht unterdrücken.

Du könntest aber folgendes machen:
Wenn der Dialog geöffnet wird schreibst Du in eine bestimmte Zelle eine 1.
Wird das Programm normal beendet dann sollte diese 1 durch eine 0 ersetzt werden.
Sollte das Programm jedoch abgebrochen werden bleibt diese 1 erhalten.
Beim nächsten Programmstart wird diese Zelle abgefragt und der Wert zu einer
anderen Zelle hinzuaddiert.

Hilft das weiter?

Jürgen

Klicks auf "Schließen" mitzählen

von erikafuchs » Di, 24.06.2008 17:03

Hallo Ihr Lieben,
ich habe in einem Rechenprogramm für meine Schüler einen Dialog mit einem Schalter "abbrechen". Jetzt will ich mitzählen, wie oft die Schüler den Dialog abbrechen. Bei dem Schalter, den ich selbst eingefügt habe ist das klar, aber man kann den Dialog ja auch über das "Schließen"-Kreuzchen beenden, kann ich diesem auch ein Makro zuordnen oder es ganz entfernen?
Grüße
Pit

Nach oben