Ereigniszuweisung funktioniert nicht

Das Textverarbeitungsprogramm

Moderator: Moderatoren

Schwedenbitter
**
Beiträge: 47
Registriert: So, 25.06.2006 13:03
Wohnort: Finsterwalde, Brandenburg

Ereigniszuweisung funktioniert nicht

Beitrag von Schwedenbitter »

Hallo,

nachdem ich mich bereits (zu früh) über meinen neuen Speichern-Dialog gefreut hatte, musste ich jetzt feststellen, dass dieser nicht aufgerufen wird, wenn ich es will! Ich möchte den Original-Dialog vom Writer ersetzen, weil alle Dateien nach einem bestimmten Muster in unterschiedliche Verzeichnisse abgespeichert werden sollen.
Der Dialog selbst funktioniert. Zumindest beim Schließen eines Dokuments über das Kreuz bekomme ich ihn zu sehen.

Allerdings wäre es nicht schlecht, wenn das auch beim Auslösen der Ereignisse "Speichern" und "Speichern unter ..." der Fall wäre. Zu diesem Zweck habe ich meinen Dialog den entsprechenden Ereignissen unter "Extras" -> "Anpassen" -> "Ereignisse" zugewiesen. Ohne Erfolg!

Zum Testen habe ich daher folgendes probiert: Ich habe zunächst 3 kleine Makros mit jeweils einer Message-Box gebastelt

Code: Alles auswählen

Sub Main
End Sub

Sub Main_Close
	MsgBox "Aktiviert über 'Schließen'",0,"Schließen"
End Sub

Sub Main_Save
	oDoc  = ThisComponent
	If oDoc.isModified() Then
		MsgBox "Aktiviert vor 'Speichern'",0,"Speichern"
	Else
		MsgBox "Aktiviert nach 'Speichern'",0,"Speichern"
	End If					
End Sub

Sub Main_Save_As
	MsgBox "Aktiviert über 'Speichern als'",0,"Speichern als"
End Sub
Dann habe ich "Main_Close" dem Ereignis "Dokument schließen", "Main_Save" nach "Dokument speichern" und "Main_Save_As" zu "Dokument sichern als" zugeordnet. Schließen geht wie eh und je.
Bei "Speichern" wird die Message-Box erst nach dem speichern angezeigt, was deutlich zu spät ist und bei "Speichern unter" bekomme ich die Box überhaupt nicht zu Gesicht.

Hat jemand eine Idee, was ich falsch mache?
OpenOffice.org 2.0.2 (stable)
OpenOffice.org 2.0.3 (update am 06.07.2006)
...
OpenOffice.org 4.1.1 (seit August 2014)
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Beitrag von Stephan »

Bei "Speichern" wird die Message-Box erst nach dem speichern angezeigt,
Bist Du sicher oder sieht es nur so aus weil das Speichern-Symbol bereits abgeblendet wird bevor der Speichervorgang läuft. Bei mir funktioniert die Reihenfolge nämlich wie erwartet (OOo 2.0.2.).
Vielleicht könntest Du es bei Dir auch einmal testen, mittels:

Code: Alles auswählen

Sub sich
Msgbox "sichern"
ThisComponent.getDocumentInfo.description = "Test"
End Sub
Dieses Makro trägt das Wort "Test" unter Datei-Eigenschaften Register "Beschreibung"-Kommentar ein.
Wenn dieses Makro dem Speichern-Ereignis zugeordnet ist und vor dem Speichern läuft sollte nach Ablauf des Makros (was durch das Speichern-Ereignis gestartet wurde) der o.g. Text eingetragen sein und das Speichern-Symbol inaktiv.
Liefe das Makro nach dem Speichern wäre zwar auch der Text eingetragen, aber das Speichern-Symbol wäre aktiv, weil ja der Texteintrag nach dem Speichern eine erneute Dokumentänderung zur Folge hat.

Offen gesagt funktioniert bei mir aber auch Dein Makro Main_Save in diesem Sinne korrekt, ich erhalte also die Meldung:
Aktiviert vor 'Speichern'
Hat jemand eine Idee, was ich falsch mache?
das weiß ich leider im Moment noch nicht.



Gruß
Stephan
Schwedenbitter
**
Beiträge: 47
Registriert: So, 25.06.2006 13:03
Wohnort: Finsterwalde, Brandenburg

Beitrag von Schwedenbitter »

Danke für die Antwort.
Offen gesagt funktioniert bei mir aber auch Dein Makro Main_Save in diesem Sinne korrekt, ich erhalte also die Meldung:
Aktiviert vor 'Speichern'
Das kann ich bestätigen. Aber bei mir nur, wenn ich die Vorlage direkt öffne ("... .ott" steht oben) und nicht als Vorlage selbst (durch Doppelklick auf die Vorlage-Datei, "Unbenannt1" steht oben) verwende. "Speichern unter..." bleibt bei mir aber in beiden Fällen tot.
Das gleiche passiert übrigens auch bei Deinem Test-Code. Öffne ich die Vorlage selbst, kommt die Messagebox und das Symbol ist deaktiviert. Benutze ich sie aber, funktioniert es wieder nicht.

Eine Integration des Makros im Writer (weiß nicht, ob ich mich da korrekt ausdrücke) bringt auch nichts. Ebenso wie die Verknüpfung mit den Ereignissen des Writer unter "Anpassen" -> "Ereignisse", wenn man unter dem Punkt "Speichern in" den Eintrag "OpenOffice.org" auswählt.

P.S. Wo ist Dein Makro abgespeichert? In der Datei oder bei "Meine Makros" (quasi im Writer)?
OpenOffice.org 2.0.2 (stable)
OpenOffice.org 2.0.3 (update am 06.07.2006)
...
OpenOffice.org 4.1.1 (seit August 2014)
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Beitrag von Stephan »

Wo ist Dein Makro abgespeichert?
im Dokument (*.odt)
Das kann ich bestätigen. Aber bei mir nur, wenn ich die Vorlage direkt öffne ("... .ott" steht oben) und nicht als Vorlage selbst (durch Doppelklick auf die Vorlage-Datei, "Unbenannt1" steht oben) verwende.
Ja, das ist aber eigentlich normal. Das Ereignis speichern steht nur Zur Verfügung wenn das Dokument bereits einen Namen hat. Ein neues Dokument hat keinen Namen. Eine Vorlage (ott) die Du zum Bearbeiten öffnest ist hingegen ein Dokument, sie wird wie eines behandelt.
Ich wußte bisher auch nicht das es sich um eine Vorlage bzw. ein neues Dokument handelt.


Gruß
Stephan
Schwedenbitter
**
Beiträge: 47
Registriert: So, 25.06.2006 13:03
Wohnort: Finsterwalde, Brandenburg

Beitrag von Schwedenbitter »

Das Ereignis speichern steht nur Zur Verfügung wenn das Dokument bereits einen Namen hat.
Das mag für das Ereignis im eigentlichen Sinne stimmen. Da kenne ich mich nicht aus. Für den Eintrag "Speichern" in der Symbolleiste stimmt das aber nicht. Sobald ich auch nur die kleinste Veränderung in der Datei vornehme, wird das graue Disketten-Symbol farbig und ich kann auf Speichern klicken.
Dann kommt natürlich in Wahrheit der "Speichern unter"-Dialog, weil die Datei noch keinen Namen hat. Das steht jedenfalls in der Überschrift des Dialog-Feldes. Genau diese wollte ich aber abfangen.

Vermutlich liegt dann dort wirklich auch das Problem. Du wirst Recht haben, dass das eigentliche Speichern immer nur geht, wenn die Datei bereits einen Namen hat. Dafür brauche ich meinen Dialog nicht, weil der Name und das Verzeichnis dann vergeben ist und sich nicht ändern soll. Ich kann mir daher eine Zuweisung zu diesem Ereignis sogar selbst sparen, weil Writer ohnehin das mach was ich will.
Mein Problem "reduziert" sich also darauf, wie ich das Ereignis "Speichern unter" in den Griff bekomme.
OpenOffice.org 2.0.2 (stable)
OpenOffice.org 2.0.3 (update am 06.07.2006)
...
OpenOffice.org 4.1.1 (seit August 2014)
Schwedenbitter
**
Beiträge: 47
Registriert: So, 25.06.2006 13:03
Wohnort: Finsterwalde, Brandenburg

Beitrag von Schwedenbitter »

Hallo Stephan,

in Deinem Beitrag vom 04.07.2006, 20.51 Uhr, hattest Du geschrieben, dass mein Test-Makro Main_Save bei Dir funktioniert hatte. Allerdings ist mir nicht ganz klar, ob sich das auch auf Main_Save_As bezogen hat.

Ich habe mehrmals neue Dateien und Vorlagen angelegt, ohne dass ich das Problem gelöst bekommen habe. Auch das Update auf die Version 2.0.3 hat keine Abhilfe geschaffen. Ich halte dies daher allmählich für einen Bug. Ich habe schon mal unter IssueZilla nachgesehen. Das war aber nicht hilfreich, weil ich nicht weiß, wie man dort vernünftig sucht. Gebe ich das Suchwort „Event(s)“ ein, werden mir auch Workshops etc. angezeigt.
Ich kann mir nicht vorstellen, dass ich der einzige bin, der dieses Problem hat.

Gruß
Alex
OpenOffice.org 2.0.2 (stable)
OpenOffice.org 2.0.3 (update am 06.07.2006)
...
OpenOffice.org 4.1.1 (seit August 2014)
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Beitrag von Stephan »

Hallo Alex,
in Deinem Beitrag vom 04.07.2006, 20.51 Uhr, hattest Du geschrieben, dass mein Test-Makro Main_Save bei Dir funktioniert hatte. Allerdings ist mir nicht ganz klar, ob sich das auch auf Main_Save_As bezogen hat.


Ich meinte nur Ersteres, so eingebunden wie Du es beschrieben hast.

Ich habe im Moment so wenig Zeit das ich mich um das "Speichern unter" nicht kümmern konnte und spontan nicht weiß wo der Fehler liegt.
Ich habe schon mal unter IssueZilla nachgesehen. Das war aber nicht hilfreich, weil ich nicht weiß, wie man dort vernünftig sucht.


Da müßte ich dann selbst erstmal suchen. Mein momentaner Rat wäre das Du das nochmal im Makro-Forum neu postest, damit Michael ("ykcim") es sieht, weil Michael im Allgemeinen der ist der sich bei aktuellen Bugs die STarBasic betreffen ziemlich gut auskennt. Du kannst es auch in:
http://www.dannenhoefer.de/forum/index.php
posten, da liest es Michael sicher, weil er dieses Forum betreibt.



Gruß
Stephan
Schwedenbitter
**
Beiträge: 47
Registriert: So, 25.06.2006 13:03
Wohnort: Finsterwalde, Brandenburg

Beitrag von Schwedenbitter »

Hallo,

leider konnte ich mein Problem immer noch nicht lösen. Aus diesem Grund habe ich mal einen Link auf die von mir erstellte Vorlage (bitte nach protokoll.ott umbenennen) eingefügt.
Wenn man die Vorlage verwendet, einen Text eingibt oder zumindest etwas verändert und auf das kleine Kreuz rechts oben klickt, dann kommt der Dialog genauso, wie es sein soll. Allerdings hat mir immer noch niemand sagen können, wie ich den Dialog auch anzeigen lassen kann, wenn der Benutzer die Ereignisse "Dokument sichern" und "Dokument sichern als" auslöst.

Vielleicht ist das Problem besser anhand meiner Vorlage zu verstehen ...
OpenOffice.org 2.0.2 (stable)
OpenOffice.org 2.0.3 (update am 06.07.2006)
...
OpenOffice.org 4.1.1 (seit August 2014)
hcsorfmmud
Beiträge: 1
Registriert: Sa, 12.08.2006 11:15

Beitrag von hcsorfmmud »

Das heißt also, wenn ich ein Dokument über das Kreuz oben rechts schließe, kann ich ein Makro etc. ausführen lassen. Wenn ich aber auf "Speichern" oder "Speichern als" gehe, klappt es nicht?

Das wäre ja ziemlich doof. Ist das ein Bug?
Schwedenbitter
**
Beiträge: 47
Registriert: So, 25.06.2006 13:03
Wohnort: Finsterwalde, Brandenburg

Beitrag von Schwedenbitter »

Das wäre ja ziemlich doof.
Ist es auch! Mich nervt das ganze schon seit über einem Monat.
Ist das ein Bug?
Ich weiß es leider auch nicht, würde aber tendenziell sagen: Ja. Allerdings sagt Michael Dannenhöfer, jemand der sich damit ziemlich gut auskennt, dass es kein Bug sei. Ich habe auf Empfehlung von Stephan das Problem auch mal in sein Forum gestellt. Hier der L i n k zu dem Thema.
OpenOffice.org 2.0.2 (stable)
OpenOffice.org 2.0.3 (update am 06.07.2006)
...
OpenOffice.org 4.1.1 (seit August 2014)
ykcim
*****
Beiträge: 324
Registriert: Di, 29.07.2003 15:22
Wohnort: Neu-Isenburg
Kontaktdaten:

Beitrag von ykcim »

Hallo Schwedenbitter(Alex) und hcsorfmmud,

Ich kann es nur wiederholen und wiederholen: Es ist kein Bug!

es gibt vier Ereignisse im Zusammenhang mit Speichern.

Dokument sichern
- tritt ein nach dem "Speichern Dialog" vor dem Speichern
Dokument wurde gesichert
- tritt ein nach dem "Speichern Dialog" nach dem Speichern
Dokument sichern als
- tritt ein nach dem "Speichern Unter" Dialog vor dem Speichern
Dokument wurde gesichert als
- tritt ein nach dem "Speichern Unter" Dialog nach dem Speichern

Alle dieses Ereignisse finden nach(!) den Dialogen statt!
Du möchtest aber das Ereignis "Vor dem Speichern (Unter) Dialog" haben. Dieses gibt es nicht. Warum auch? Den genaugenommen ist doch dieses Ereignis nicht anderes wie "User hat Menüpunkt Speichern (Unter) gedrückt".
Es ist also nichts anderes wie die Menü-, Tasten- oder Symbolauswahl. Du kommst nur über die Änderung des Menüs und der Symbolleiste zu Deinem Ziel.

mfg
Michael
__
FAQ zu Starbasic -> http://www.starbasicfaq.de
Schwedenbitter
**
Beiträge: 47
Registriert: So, 25.06.2006 13:03
Wohnort: Finsterwalde, Brandenburg

Beitrag von Schwedenbitter »

Ich kann es nur wiederholen und wiederholen.
OK! Auch ich habe es jetzt verstanden. Aber eine Frage muss doch wohl gestattet sein: Wofür z.B. soll man Dialoge nach den eigentlichen OO-Dialogen aufrufen? Bei den Ereignissen "Dokumen wurde gesichert (als)" ist mir das klar, bei den anderen beiden aber nicht.
Du möchtest aber das Ereignis "Vor dem Speichern (Unter) Dialog" haben. Dieses gibt es nicht. Warum auch?
Auch ich kann mich nur wiederholen: Bitte in meiner Eingangs-Message nachlesen.
Den genaugenommen ist doch dieses Ereignis nicht anderes wie "User hat Menüpunkt Speichern (Unter) gedrückt".
Nein! Es ist "User hat Menüpunkt Speichern (Unter) gedrückt und der OO-Dialog wurde schon ausgeführt.".

Außerdem weiß ich, dass ich hierfür bestimmt verhauen werde oder zumindest böse Posts bekomme: Unter M$ W*** ging das völlig problemlos! Und ich wollte doch nur meine bereits bestehende und prima funktionierende Vorlage in OO portieren :(
Du kommst nur über die Änderung des Menüs und der Symbolleiste zu Deinem Ziel.
Werde mich mal an die Arbeit machen. Ich hoffe nur, dass OO diese Einstellungen wenigstens in der Vorlage speichert und ich nicht auf jedem Rechner wieder alles von Hand ummodeln muss.
OpenOffice.org 2.0.2 (stable)
OpenOffice.org 2.0.3 (update am 06.07.2006)
...
OpenOffice.org 4.1.1 (seit August 2014)
ykcim
*****
Beiträge: 324
Registriert: Di, 29.07.2003 15:22
Wohnort: Neu-Isenburg
Kontaktdaten:

Beitrag von ykcim »

Du weißt aber schon was Du schreibst?

Zu erst schreibst Du:
Wofür z.B. soll man Dialoge nach den eigentlichen OO-Dialogen aufrufen?
und dann setzt Du einen drauf:
Nein! Es ist "User hat Menüpunkt Speichern (Unter) gedrückt und der OO-Dialog wurde schon ausgeführt.".
Also wat nun?

Und für dieses gewünschte Ereignis gibt es:
Dokument sichern
- tritt ein nach dem "Speichern Dialog" vor dem Speichern
Dokument sichern als
- tritt ein nach dem "Speichern Unter" Dialog vor dem Speichern
Die beiden Ereignisse sind genau an der gewünschten Stelle.

mfg
Mchael


PS. Sinnvoll sind die Ereignisse wenn man noch etwas automatisert vor dem physikalischen Speichern bzw nach dem Speichern ausführen möchte. Und zwar abhängig davon ob das Dokument einfach oder unter einen neuen Namen gespeichert wurde.
z.B. bei vor dem Speichern:
interne Felder im Dokument setzen
Archivdaten füllen
etc.
z.B. nach dem Speichern
Name und Pfad in eine Datenbank schreiben
Dokument schließen
Dokument drucken
etc.
Mir fällt da sicher noch mehr ein :-)
__
FAQ zu Starbasic -> http://www.starbasicfaq.de
ykcim
*****
Beiträge: 324
Registriert: Di, 29.07.2003 15:22
Wohnort: Neu-Isenburg
Kontaktdaten:

Beitrag von ykcim »

Zur Ergänzung:

Bei mir macht dieses Dokument das was Du möchtest mit Deinem Makro->
(url gelöscht, da Datei nicht mehr auf dem Server)

(OO 2.0.2 und 2.0.3)

mfg
Michael
Zuletzt geändert von ykcim am Mo, 14.08.2006 17:40, insgesamt 1-mal geändert.
__
FAQ zu Starbasic -> http://www.starbasicfaq.de
Schwedenbitter
**
Beiträge: 47
Registriert: So, 25.06.2006 13:03
Wohnort: Finsterwalde, Brandenburg

Beitrag von Schwedenbitter »

Bei mir macht dieses Dokument das was Du möchtest mit Deinem Makro->
Tut es nicht; ich habe es runtergeladen und sofort ausprobiert. Ich habe doch oben schon geschrieben, dass
Ich ... den Original-Dialog vom Writer ersetzen (möchte) ...
Sowohl bei meiner Protokoll.ott als auch bei der von Dir kommt aber immer der Standard-Dialog.
Wenn es bei Dir geht, frage ich mich allmählich, ob ich dasselbe OO habe wie Du oder ob ich vielleicht irgendwelche Einstellungen anders gesetzt habe, die mir den Erfolg versagen.

Im Übrigen weiß ich was ich schreibe. Danke für den netten Hieb. Ich habe geschrieben, dass "User hat Menüpunkt Speichern (Unter) gedrückt und der OO-Dialog wurde schon ausgeführt." genau das ist, was ich nicht will. Es ist also wenig hilfreich mir mitzuteilen
Und für dieses gewünschte Ereignis gibt es:
Denn dieses Ergebnis ist nicht gewünscht. Ich habe außerdem mitgeteilt, dass ich Deinen Tip mit dem Menü-Neuschreiben umsetzen werde.
OpenOffice.org 2.0.2 (stable)
OpenOffice.org 2.0.3 (update am 06.07.2006)
...
OpenOffice.org 4.1.1 (seit August 2014)
Antworten