SoftMaker.de

Deutschsprachiges Diskussionsforum
Aktuelle Zeit: 20.06.2013 02:45:13

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 40 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3  Nächste
Autor Nachricht
BeitragVerfasst: 21.02.2012 23:39:54 
Offline

Registriert: 17.02.2012 16:59:16
Beiträge: 19
Wohnort: Freiburg i. Br.
Hallo Dewes,

bin erst jetzt dazu gekommen, nochmal zu testen. Das Kommando für die Buttons ist nun:

basicmaker /s C:\Users\xoph\Documents\SoftMaker\SC1.bas (bzw. SC2.bas)

Die Fehlermeldung bleibt leider aber dieselbe (Error in line: 19 - Application defined or object defined error).

Ist der Tip von Eierlein denn so gemeint, dass ich die Zeile:

print #1, "tm.Documents.Open" & " " & chr(34) & tm.Documents(x).FullName & chr(34)

durch die Zeile:

print #1, " Set tm = CreateObject(""TextMaker.Application"")"

ersetzen soll? Ich habe das soeben ausprobiert und dann wieder rückgängig gemacht, denn dann passiert (nach Schließen und Öffnen von Textmaker) einfach gar nichts, es kommt auch keine Fehlermeldung.

Allerdings hat sich dabei sc2.bas folgendermaßen verändert:

Dim tm as Object
Set tm = CreateObject("TextMaker.Application")
tm.Application.Visible = True
tm.Activate
Set tm = CreateObject("TextMaker.Application")
Set tm = Nothing

Wenn ich nun die "restaurierte" sc1.bas (mit anschließender Fehlermeldung) aufrufe, sieht sc2.bas wieder so aus wie am 20.2. beschrieben:

Dim tm as Object
Set tm = CreateObject("TextMaker.Application")
tm.Application.Visible = True
tm.Activate

Gruß, Christoph

_________________
---

Thinkpad R52 mit Win7 + PC mit Ubuntu 11.10
SoftMaker 2012, Word 2002, MS Office 2010


Nach oben
 Profil  
 
BeitragVerfasst: 22.02.2012 14:39:01 
Offline
SoftMaker Volunteers
SoftMaker Volunteers

Registriert: 06.02.2007 14:01:47
Beiträge: 990
Also so ganz verstehe ich das nicht.

Ich setze mal voraus, dass du hierbei nicht mit Linux und auch nicht mit einer USB-Version von Softmaker arbeitest.

Ergänze mal die Befehlszeile für den Button:

C:\Program Files\SoftMaker Office 2012\basicmaker /s C:\Users\xoph\Documents\SoftMaker\SC1.bas

Wenn das es nicht bringt mache mal folgendes:

Lade TM und öffne einige Dokumente
Lade BM und lade dann das Script Sc1
Klicke in BM auf ausführen


Nach oben
 Profil  
 
BeitragVerfasst: 22.02.2012 14:41:50 
Offline
SoftMaker Volunteers
SoftMaker Volunteers

Registriert: 06.02.2007 14:01:47
Beiträge: 990
Eierlein hat geschrieben:
So funktioniert's auch ohne CHR(34):

Code:
print #1, " Set tm = CreateObject(""TextMaker.Application"")"
Ja so funktioniert es. Für mich ist das eine merkwürdige Notation.

Ich kenne aus anderen Sprachen, daß man mit dem einfachen Hochkomma (') einrahmt, aber das hat auch nicht funktioniert.


Nach oben
 Profil  
 
BeitragVerfasst: 22.02.2012 17:46:06 
Offline

Registriert: 17.02.2012 16:59:16
Beiträge: 19
Wohnort: Freiburg i. Br.
Hallo Dewes,

jetzt funktioniert's! Was freilich ein wenig rätselhaft ist, weil ich diese ausführlichen Pfadangaben am Anfang schon mal verwendet hatte, auf einer Website dann aber jene verkürzte Version ohne Pfadangaben fand und dachte, dann probier ich's eben damit. (Die Fehlermeldungen waren dann ja auch die gleichen.)

Ich gehe also nun so vor (das halte ich mal für andere Interessierte fest):

Ehe ich TextMaker verlasse, starte ich Skript SC1, damit die Dateiliste gespeichert wird. Wenn ich TextMaker von neuem starte, öffnet sich das altbekannte Dokument "Unbenannt 1", mit dem Script 2 werden dann zusätzlich die Dateien aus der gespeicherten Liste geöffnet. Wenn ich "Unbenannt 1" schließe, bin ich wieder auf dem vorherigen Stand.

Damit kann ich nun wirklich was anfangen!

Was jetzt kommt, klingt vielleicht verwöhnt und muss nicht sein, wäre aber noch schöner! In StarWriter und Word konnte man das nämlich so einstellen, dass sich das Drücken der Skript-Knöpfe erübrigte und außerdem keine Datei "Unbenannt 1" im Spiel war: Sobald die Option "Arbeitsplatz wiederherstellen/Restore Workspace" (oder so ähnlich) eingeschaltet war, merkte sich das Programm beim Schließen jedesmal ohne weiteres Zutun, welche Dateien offen waren, und öffnete sie beim nächsten Mal wieder. Das Programm nahm einem sämtliche Schritte einfach ab.

Ich könnte mir vorstellen, dass das nun wirklich nicht zu machen ist, weil es da wohl nicht um Skripte, sondern um sowas wie Startparameter für TextMaker geht?

Wie gesagt: Die zwei Skripte sind wirklich super und eine Riesenverbesserung für mich! Vielen Dank. Ich freue mich einfach, dass ich hier so schnell geholfen werde!

Cheers, Christoph

_________________
---

Thinkpad R52 mit Win7 + PC mit Ubuntu 11.10
SoftMaker 2012, Word 2002, MS Office 2010


Nach oben
 Profil  
 
BeitragVerfasst: 22.02.2012 19:27:58 
Offline
SoftMaker Volunteers
SoftMaker Volunteers

Registriert: 06.02.2007 14:01:47
Beiträge: 990
Schön, dass es jetzt funktioniert.

Zitat:
ch könnte mir vorstellen, dass das nun wirklich nicht zu machen ist, weil es da wohl nicht um Skripte, sondern um sowas wie Startparameter für TextMaker geht?
richtig erkannt, da hat man mit einem Script keinen Einfluss drauf. Ich hatte versucht, wenigstens beim Start dies über eine Batch-Datei abzufangen. Batch stammt aber aus den alten DOS-Zeiten und verlangt deshalb einen Verzeichnisnamen 8.3, das ist mit dem neuen SMO 2012 nicht mehr drin.


Nach oben
 Profil  
 
BeitragVerfasst: 22.02.2012 19:48:01 
Offline

Registriert: 17.02.2012 16:59:16
Beiträge: 19
Wohnort: Freiburg i. Br.
Danke für die Antwort! Vielleicht könnte man einen kleinen Schritt aber noch automatisieren, nämlich dass das zweite Skript erst die zuletzt verwendeten Dateien aufmacht und dann die Datei "Unbenannt 1" schließt? Das würde sich dann ja innerhalb von TextMaker abspielen und nicht beim Startvorgang, deshalb komm ich da drauf.

_________________
---

Thinkpad R52 mit Win7 + PC mit Ubuntu 11.10
SoftMaker 2012, Word 2002, MS Office 2010


Nach oben
 Profil  
 
BeitragVerfasst: 23.02.2012 09:48:44 
Offline
SoftMaker Volunteers
SoftMaker Volunteers

Registriert: 06.02.2007 14:01:47
Beiträge: 990
Zitat:
Vielleicht könnte man einen kleinen Schritt aber noch automatisieren, nämlich dass das zweite Skript erst die zuletzt verwendeten Dateien aufmacht und dann die Datei "Unbenannt 1" schließt?

Kein Problem, nur dass ich zuerst die "Unbenannt 1" schließe und dann die Dokumente laden.

Um die Sache einfach zu machen, stelle ich den kompletten Code ein, ist ja nicht lang
Code:
Dim tm as Object
Dim x as integer
Dim t as String

Set tm = CreateObject("TextMaker.Application")
tm.Application.Visible = True
tm.Activate

Open "C:\Users\xxx\Documents\SoftMaker\SC2.bas" For Output As #1   ' Datei anlegen

print #1, "Dim tm as Object"
print #1, " Set tm = CreateObject(""TextMaker.Application"")"
print #1, " tm.Application.Visible = True"
print #1, " tm.Activate"

print #1, " If tm.Application.Documents.Item(1).Name = ""Unbenannt 1"" then  "
print #1, " tm.Application.Documents.Item(1).Close"
print #1, " end if"

for x = 1 to tm.Documents.Count
print #1, "tm.Documents.Open" & " " &  chr(34) & tm.Documents(x).FullName & chr(34)
next x

print #1,  "Set tm = Nothing"

Close #1

Set tm = Nothing



Nach oben
 Profil  
 
BeitragVerfasst: 23.02.2012 13:47:24 
Offline

Registriert: 17.02.2012 16:59:16
Beiträge: 19
Wohnort: Freiburg i. Br.
Sorry, ich schon wieder: Beim Starten von Skript SC1.bas wird wieder dieselbe Zeile moniert wie schon einmal. Auch das Entfernen eines vermutlich überzähligen Leerzeichens vor "chr(34" ändert daran nichts. Ansonsten habe ich nichts verstellt, deshalb ist das seltsam. Die Zeile 21, die beanstandet wird, lautet:

print #1, "tm.Documents.Open" & " " & chr(34) & tm.Documents(x).FullName & chr(34)

Die Datei SC2.bas sieht jetzt so aus:

Dim tm as Object
Set tm = CreateObject("TextMaker.Application")
tm.Application.Visible = True
tm.Activate
If tm.Application.Documents.Item(1).Name = "Unbenannt 1" then
tm.Application.Documents.Item(1).Close
end if

Gruß und zwischendurch mal wieder Dank für die Mühe - Christoph

_________________
---

Thinkpad R52 mit Win7 + PC mit Ubuntu 11.10
SoftMaker 2012, Word 2002, MS Office 2010


Nach oben
 Profil  
 
BeitragVerfasst: 23.02.2012 13:56:48 
Offline
SoftMaker Volunteers
SoftMaker Volunteers

Registriert: 06.02.2007 14:01:47
Beiträge: 990
Hast du daran gedacht bei der Zeile
Code:
Open "C:\Users\xxx\Documents\SoftMaker\SC2.bas" For Output As #1   ' Datei anlegen
das "xxx" mit deiner Userbezeichnung zu ersetzen?

Ich habe das nochmals getestet, in dem ich von hier das Script kopiert habe, es läuft einwandfrei.


Nach oben
 Profil  
 
BeitragVerfasst: 23.02.2012 14:18:29 
Offline

Registriert: 17.02.2012 16:59:16
Beiträge: 19
Wohnort: Freiburg i. Br.
... und gleich nochmal: Nach Runter- und Hochfahren des Computers (aus einem anderen Grund) funktioniert das Skript plötzlich! Zuvor hatte ich mehrmals TextMaker geschlossen und wieder geöffnet, das brachte nichts.

Zwischendurch dachte ich übrigens, es könnte was damit zu tun haben, dass das vielleicht nur mit Dateien im TextMaker-eigenen tmd-Format klappt und nicht mit doc-Dateien. Es geht aber mit beiden Formaten.

Dann hoffe ich mal, dass das stabil bleibt!

Gruß und thanx, Christoph

_________________
---

Thinkpad R52 mit Win7 + PC mit Ubuntu 11.10
SoftMaker 2012, Word 2002, MS Office 2010


Nach oben
 Profil  
 
BeitragVerfasst: 24.02.2012 09:50:30 
Offline

Registriert: 17.02.2012 16:59:16
Beiträge: 19
Wohnort: Freiburg i. Br.
Es geht immer noch hin und her: Mal funktionieren die Skripte, mal nicht. Heute morgen war zunächst wieder dieselbe Situation wie gestern da (im ersten Posting vom 23.2. beschrieben). Dann, nach mehrmaligem Schließen von TextMaker, ging's plötzlich wieder.

Ich glaube, ich muss das eine Weile beobachten und protokollieren, um sagen zu können, an welchen Punkten es liegen könnte. Dann melde ich mich wieder. Nicht zuletzt weil ich mir sicher bin, dass diese Funktion auch für einige andere Nutzer interessant werden kann.

_________________
---

Thinkpad R52 mit Win7 + PC mit Ubuntu 11.10
SoftMaker 2012, Word 2002, MS Office 2010


Nach oben
 Profil  
 
BeitragVerfasst: 27.02.2012 09:00:16 
Offline
SoftMaker Volunteers
SoftMaker Volunteers

Registriert: 06.02.2007 14:01:47
Beiträge: 990
Ich habe mal noch einen anderen Lösungsansatz gewählt, wobei nur ein Script benötigt wird. Das hat den Vorteil, dass man auch nur einen Button in der Symbolleiste benötigt.

Das Script prüft, ob mehr als ein Dokument geöffnet ist und schreibt dann die Namen der Dokumente in die Datei „dok.txt“. Ist dies nicht der Fall, werden die in der „dok.txt“ gespeicherten Dokumentennamen geladen.

Code:
Dim tm as Object
Dim Zeile as String
set fs = CreateObject("Scripting.FileSystemObject")

Set tm = CreateObject("TextMaker.Application")
tm.Application.Visible = True
tm.Activate

If tm.Documents.Count > 1 then

Open "C:\Users\xxx\Documents\SoftMaker\dok.txt" For Output As #1   ' Datei anlegen
for x = 1 to tm.Documents.Count
print #1,  tm.Documents(x).FullName
next x
close #1

Else

If tm.Application.Documents.Item(1).Name = "Unbenannt 1" then
tm.Application.Documents.Item(1).Close
End if

if  fs.fileExists("C:\Users\xxx\Documents\SoftMaker\dok.txt") then
Open "C:\Users\xxx\Documents\SoftMaker\dok.txt" For Input As #1
Do While Not EOF(1)
Line Input #1, zeile   
tm.Documents.Open   zeile
Loop
Close #1 

else
msgbox("Datei >dok.txt< nicht gefunden")

end if
           
End if

Set tm = Nothing



Nach oben
 Profil  
 
BeitragVerfasst: 01.03.2012 19:46:39 
Offline

Registriert: 17.02.2012 16:59:16
Beiträge: 19
Wohnort: Freiburg i. Br.
Hallo Dewes,

eine echte Verbesserung nochmal, das neue Skript. Funktioniert sehr gut!

Wenn ich nun aber nur eine Datei offen habe (was selten, aber natürlich auch mal vorkommt) und den Zustand per Button speichern will, "meckert" das Skript per Fehlermeldung "Error in line...", in Zeile 27 sei was nicht in Ordnung. Ist das also so gedacht, dass das Skript nun dann einzusetzen ist, wenn man mehr als eine Datei offen hat? (Du schreibst: "Ist dies nicht der Fall," d. h. ist nur eine Datei offen, "werden die in der „dok.txt“ gespeicherten Dokumentennamen geladen." Bin mir nicht sicher, wie das zu verstehen ist.)

Gruß, Christoph

_________________
---

Thinkpad R52 mit Win7 + PC mit Ubuntu 11.10
SoftMaker 2012, Word 2002, MS Office 2010


Nach oben
 Profil  
 
BeitragVerfasst: 02.03.2012 09:18:47 
Offline
SoftMaker Volunteers
SoftMaker Volunteers

Registriert: 06.02.2007 14:01:47
Beiträge: 990
Zitat:
Wenn ich nun aber nur eine Datei offen habe
Aufgrund deiner Ausführungen am Anfang des Threads bin ich davon ausgegangen, dass das nicht passieren kann. Aber kein Problem, ich habe das Script so abgeändert, dass so geprüft wird, ob ein Dokument "Unbenannt 1" geöffnet ist, wenn ja, wird es gelöscht. Dann wird geprüft, ob ein Dokument geöffnet ist, wenn ja, wird eine neue dok.txt erstellt, andernfalls werden die Dokument geladen. Du kannst also nicht ein Dokument öffnen und dann zusätzlich die Dokumente aus der dok.txt laden, aber umgekehrt geht es natürlich. Irgendwie muss das Script ja erkennen, ob es laden oder speichern soll.

Anbei das geändert Script. Bitte genau so kopieren, sonst habe ich Probleme, wenn du eine Fehlermeldung zitierst, wie "Error in Line xxx".

Code:
'------------------------------------------------
' Aus den geöffneten TM-Dokumenten wird eine
' Datei >dok.txt< erstellt
' die bei einem späteren Start automatisch geladen werden
' Stand  01.03.2012
' ------------------------------------------------

Dim tm as Object
Dim Zeile as String
set fs = CreateObject("Scripting.FileSystemObject")

Set tm = CreateObject("TextMaker.Application")
tm.Application.Visible = True
tm.Activate

If tm.Application.Documents.Item(1).Name = "Unbenannt 1" then
tm.Application.Documents.Item(1).Close
End if

If tm.Documents.Count > 0 then

Open "C:\Users\xxx\Documents\SoftMaker\dok.txt" For Output As #1   ' Datei anlegen
for x = 1 to tm.Documents.Count
print #1,  tm.Documents(x).FullName
next x
close #1

Else

if  fs.fileExists("C:\Users\Dewes\Documents\SoftMaker\dok.txt") then
Open "C:\Users\Dewes\Documents\SoftMaker\dok.txt" For Input As #1
Do While Not EOF(1)
Line Input #1, zeile    ' Zeile einlesen
tm.Documents.Open   zeile
Loop
Close #1 

else
msgbox("Datei >dok.txt< nicht gefunden")

end if
           
End if

Set tm = Nothing


Nach oben
 Profil  
 
BeitragVerfasst: 04.03.2012 15:18:58 
Offline

Registriert: 17.02.2012 16:59:16
Beiträge: 19
Wohnort: Freiburg i. Br.
Danke für die neue Version! Es stimmt, ich hatte das so dargestellt, dass ich eigentlich immer mit mehreren Dateien arbeite. Das ist so sehr der Normalfall, dass es mir dann schon gar nicht mehr auffällt, wenn ich nur mal eine Datei offen habe.

Aber damit das Skript auch für viele andere nützlich sein kann, ist es sicher ein Gewinn, wenn die Option mit nur einer wiederherzustellenden Datei eingebaut ist!

Das Skript funktioniert nun gut, aber leider meistens (habe das mehrmals getestet) erst im zweiten Anlauf. Wenn ich es nach dem Öffnen von TextMaker aufrufe, verdoppelt und verdreifacht sich oben im Bild die Format-Symbolleiste, und dann stürzt TextMaker ab. (Es erscheint dieser in Win7 recht vertraute Balken mit "Programm XY funktioniert nicht mehr - Es wird nach einer Lösung für das Problem gesucht".)

Beim nächsten Aufruf klappt es dann, wobei auch hier diese vorübergehende Multiplikation der Format-Symbolleiste auftritt.

Nun hoffe ich ja, das liegt nicht an meiner Hardware. Freilich könnte ich dann einfach zu dem vorherigen Skript zurückgehen, das ja gut funktioniert hat.

Besonnten Frühlingsgruß, Christoph

_________________
---

Thinkpad R52 mit Win7 + PC mit Ubuntu 11.10
SoftMaker 2012, Word 2002, MS Office 2010


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 40 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3  Nächste

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.
Sie dürfen keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de