Jörg Schmidt wrote:

> Hallo,
> 
> auf der users-liste verfolge ich einen Thread zum öffnen eines *.txt
> welches HTML-Quelltext enthält. OOo 2.0 öffnet solche Dokumente per
> default als HTML, d.h. man müßte vorher den richtigen Filter im
> Dateidialog manuell wählen um als txt zu öffnen.
> Folgendes Makro sollte helfen, wenn ich es dem Ereignis 'Dokument
> öffnen' der OOo-Anwendung zuordne:
> 
> Sub TXT_ist_HTML()
> IF ThisComponent.supportsService("com.sun.star.text.WebDocument") then
>       DOK = StarDesktop.CurrentComponent
>       pfad = DOK.URL
>       DOK.Close(true)
>       If Right(pfad, 3) = "txt" Then
>               dim args3(0) as new com.sun.star.beans.PropertyValue
>               args3(0).Name = "FilterName"
>               args3(0).Value = "Text"
>               'dieses Dokument öffnet schreibgeschützt
>               StarDesktop.loadComponentFromURL( pfad , "_blank", 0, args3() )
>       end if
> end if
> End Sub
> 
> Problem ist:
> -->das durch das Makro als txt geöffnete Dokument ist jedoch
> schreibgeschützt!?

Die Erklärung ist einfach: du schließt das Dokument, während dieses
gerade ein Ereignis versendet. Da das Dokument nicht weiß, was während
des Ereignisses passiert, schützt es sich solange gegen Zerstörung,
sprich: es wird solange nicht wirklich geschlossen, bis die
Benachrichtigung über das Ereignis beendet ist, aber dann sofort danach.

Dein Macro läuft aber *komplett* in der Benachrichtigung, insofern hast
du nichts davon, wenn das Dokument dann unmittelbar später tatsächlich
geschlossen wird.

Es ist IMHO hier kein Bug im Spiel. Was dein Macro tun will, ist einfach
ein bischen haarig. Eigentlich ist es sogar etwas unsauber, ein Dokument
 in einer Benachrichtigung zu schließen, erst recht direkt nach dem Laden.

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