Hallo Thomas, *,
Thomas Krumbein schrieb:
> ThisComponent.supportsService("com.sun.star.text.WebDocument") then
> > DOK = StarDesktop.CurrentComponent
> > pfad = DOK.URL
> > DOK.Close(true)
>
> Interessant, dass dein Makro überhaupt funktioniert! Spätestens hier
> steigt mein Rechner aus! Fehlermeldung: Controller disagrees...
> Was auch für mich logisch wäre....
Naja, gestern war ich etwas müde, aber auch heute sehe ich nicht warum
Dir das logisch erscheint (das bei Dir ein Fehler auftritt glaube ich
ja).
Hinweis:
das Makro ist kein Dokumentmakro, sondern in den OOo-Bibliotheken.
> Controller das zweite Öffnen der Datei nur noch
> schreibgeschützt zulässt
> - also eigentlich ok.
Ja, bloß ich _schließe die Datei doch vorher_, bevor ich erneut mit
anderem Filter öffne. Wo ist denn die Situation anders als wenn die
Datei vorher nicht geöffnet gewesen wäre.
Ich denke ja auch es ist nur eine Kleinigkeit, aber ich komme nicht
drauf.
Ich hatte Ähnliches mal für OOo 1.1.x gemacht (csv als Calc öffnen),
dort öffne ich quasi zwischendurch ein leeres Dokument, ich wollte es
jetzt besser machen, weil natürlich das leere Dokument kurz zu sehen
ist. Hier ist der damalige Code:
Sub TXT_ist_Tabelle()
DOK = ThisComponent
If DOK.supportsService("com.sun.star.text.TextDocument") then
If LCase(Right(Dok.URL, 3)) = "txt" Then
rueck = msgbox("Als Tabellendokument öffnen?",36,"")
if rueck <> 6 Then Exit Sub
Dim Dummy()
dokument = StarDesktop.loadComponentFromURL (
"private:factory/scalc"
, "_blank", 0, Dummy() )
xxx = ConvertToURL(DOK.URL)
DOK.Close(true)
dim document as object
dim dispatcher as object
dispatcher =
createUnoService("com.sun.star.frame.DispatchHelper")
dim args3(1) as new com.sun.star.beans.PropertyValue
args3(0).Name = "URL"
args3(0).Value = xxx
args3(1).Name = "FilterName"
args3(1).Value = "Text - txt - csv (StarCalc)"
document = ThisComponent.CurrentController.Frame
dispatcher.executeDispatch(document, ".uno:Open", "", 0,
args3())
End If
End If
End Sub
> End Sub
Dein makro ist ein wenig anders als meins, nur ich sehe keine
gravierenden Unterschiede, Problem bleibt aber: es wird schreibgeschützt
geöffnet.
Hinweis:
auch mein Makro (TXT_ist_HTML()) funktioniert ja bestens wenn ich es
manuell starte, da wird dann _nicht_ schreibgeschützt geöffnet, aber
wenn ich es mit dem Ereignis "Dokument öffnen" verknüpfe wird ebend
schreibgeschützt geöffnet. Und das ist bei Deinem Makro (zumindest bei
mir) genauso.
OOo 2.0 Win 2000
vorbehaltlich das Du mir gesagt hast da ist ein konkreter Fehler in OOo
2.0 der in 2.0.2 behoben sein wird, dann müssen wir das abwarten
> Der einzige Nachteil ist die Identifikation des "richtigen" Frames.
> Solange nur ein HTML Dokument geöffnet ist, kein Problem - aber wehe,
> wenn mehr. Dann werden alle im Textmodus geöffnet!
das wäre im Konkreten evtl. sogar erwünscht (obwohl ich dieses Problem
garnicht sehe, denn selbst wenn es einen Grund gibt durch alle
geöffneten Frames zu interieren, kannst Du zumindest anhand des
Frame-Titel und des Dateinames das konkrete (das zu letzt geöffnete
Dokument) herauspicken, scheint mir zunächst - aber das ist zunächst
nebensächlich)
> PS: Wozu braucht man soetwas überhaupt?
Wegen der Problematik das in OOo 2.0 *.txt als Webdokument geöffnet
werden wenn der Inhalt der *.txt seiner Natur nach HTML-Quellcode ist
hatte ich mir überlegt sowas zu schreiben weil ein User danach fragte
und ich ähnliches ja für csv automatisch in Calc öffnen für 1.1.x schon
mal veröffentlicht hatte.
Der User will:
*.txt doppelklicken und es soll als txt geöffnet werden. (OOo ist
bereits Defaultapplikation für txt, nur OOo öffnet das txt als
Webdokument wenn es erkennt das der Inhalt HTML-Code ist. Es ist dem
User zu kompliziert immer im Dateidialog den richtigen Filter
voreinzustellen)
> Man muss doch nur in der
> Webansicht umstellen in Quelltext-Ansicht und hat schon alles als
> Textdatei vorliegen????
Das weiß ich, aber gerade das will der User nicht, ich weiß nicht warum.
Gruß
Jörg
P.S.
Da der User mit Doppelklick öffnen will, war meine bessere Überlegung
als Defaultreaktion für txt auf Doppelklick ein Makro ausführen zu
lassen, mir ist nur nicht klar wie ich diesem Makro den %1 Parameter
mitgebe, der ja beinhaltet auf welche konkrete Datei im Dateisystem
geklickt wurde. (mit einem VBS-Script wüßte ich wie, aber mit OOoBasic?)
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]