Jörg Schmidt wrote:

> Meine Fragen:
> (1)
> Warum verhalten sich OOo 1.1.4 und OOo 2.0.1 hier unterschiedlich?

Weil OOo1.1.4 einen Bug hatte, der gelegentlich zu Crashes führte. Der
konnte nur dadurch gefixt werden, dass ein unmittelbares Zerstören eines
Dokuments innerhalb der Ereignisverarbeitung verhindert wird. Das
Dokument zerstört sich dann selbst unmittelbar danach, leider für dein
Macro zu spät.

> (Konkret habe ich weder Deine noch die Erklärung von Thomas genau
> verstanden, nur Thomas sagt ja das wäre in 2.0.1 ein Fehler (das würde
> dann weitere Erklärungen entbehrlich machen), Du hingegen sagst (IMHO)
> es dürfte garnicht funktionieren.)

Noch einmal: der von Thomas erwähnte Fehler (der übrigens in Ooo2.0.2
gefixt sein wird) hat *überhaupt nichts* mit deinem Problem zu tun.

> (2)
> Wie 'überzeuge' ich OOo 2.0.1 ggf. sich so zu verhalten wie 1.1.4, falls
> doch kein Fehler in Version 2.0.1 vorliegt.

Wie gesagt: das Verhalten ist korrekt so wie es in Ooo2.0.1 ist. Das
Feature, ein Dokument *sofort* in seinem "OnLoad"-Event zerstören zu
können musste zugunsten besserer Stabilität geopfert werden. Ich finde
nicht, dass das ein Verlust ist. Du musst schon zugeben, dass dein Macro
etwas eigenartige Dinge tut. Leider gibt es in OOo-Basic keine
Timer-Events, dann könntest du das Problem relativ simpel dadurch lösen,
dass du das Neuladen einfach später ausführst.

Noch ein Versuch der Erklärung:

Du lädst ein Dokument. Wenn das Dokument mit dem Laden fertig ist,
versendet es ein Event "Bin fertig!". Du hast per Konfiguration verfügt,
dass beim Eintreffen dieses Events ein Basic-Macro ausgeführt wird.
Dieses Macro ruft u.a. "close(True)" an dem Dokument auf, dabei wird es
geschlossen, aber noch nicht vollständig zerstört, da es sonst in
manchen Fällen bei der Rückkehr von der Macro-Verarbeitung zu Abstürzen
kam. Erst wenn diese Rückkehr erfolgt ist, also *nachdem* dein
komplettes Macros durchgelaufen ist, wird das Dokument restlos freigegeben.

Ich halte das Verhalten nicht für einen Bug, ich würde sogar soweit
gehen, dass ich mir auch vorstellen könnte, dass man hier den
"close"-Aufruf verweigern könnte (in Form einer CloseVetoException).

Um dieses Verhalten zu ändern, müsste jedenfalls ein nicht unerheblicher
Aufwand getrieben werden, ich kann mir nicht vorstellen, dass es dazu
kommt.

Aber man soll nie nie sagen. Soll heißen: ich denke darüber nach. :-)

Ciao,
Mathias

-- 
Mathias Bauer - OpenOffice.org Application Framework Project Lead
Please reply to the list only, [EMAIL PROTECTED] is a spam sink.

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Antwort per Email an