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
Klicks auf "Schließen" mitzählen
Moderator: Moderatoren
-
- ******
- Beiträge: 690
- Registriert: Di, 13.02.2007 17:38
- Wohnort: Büttelborn
Re: Klicks auf "Schließen" mitzählen
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
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
Software hat keinen Verstand - benutze deinen eigenen...!
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Re: Klicks auf "Schließen" mitzählen
wenn du einen modalen Dialog verwendest kannst Du die normale Funktion des [x] unterdrücken und/oder ein Makro zuordnen.kann ich diesem auch ein Makro zuordnen oder es ganz entfernen?
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
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
-
- ******
- Beiträge: 690
- Registriert: Di, 13.02.2007 17:38
- Wohnort: Büttelborn
Re: Klicks auf "Schließen" mitzählen
Vielen Dank für eure Hilfe!
Lieber Stefan,
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
Lieber Stefan,
das Einfachste wäre es ja gewesen, wenn das "lost-focus" funktioniert hätte - geht aber leider nicht.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.
Wenn ich das richtig verstehe, muss ich die Dialoge dann alle neu basteln?wenn du einen modalen Dialog verwendest kannst Du die normale Funktion des [x] unterdrücken und/oder ein Makro zuordnen.
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