SoftMaker.de

Deutschsprachiges Diskussionsforum
Aktuelle Zeit: 19.05.2013 05:05:55

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 8 Beiträge ] 
Autor Nachricht
BeitragVerfasst: 11.03.2009 10:29:52 
Revision 504
Code:
' Selektiere von Zeichen 1 bis Zeichen 5 des aktuellen Dokuments
Set tm = CreateObject("TextMaker.Application")
tm.ActiveDocument.Selection.SetRange 1, 5
tm.ActiveDocument.Selection.Copy
tm.ActiveDocument.Selection.Paste


Funktioniert nicht, richtig?


Zuletzt geändert von Monsterslayer am 24.08.2009 08:25:34, insgesamt 1-mal geändert.

Nach oben
  
 
BeitragVerfasst: 11.03.2009 11:45:57 
Offline
SoftMaker Team
SoftMaker Team

Registriert: 09.04.2008 08:50:06
Beiträge: 6299
Wohnort: Nürnberg
Imho schon. .Paste ersetzt den markierten Teil mit sich selbst und setzt das Caret ans Ende des eingefügten Texts.

_________________
Sven Leßmann
SoftMaker Software GmbH


Nach oben
 Profil  
 
BeitragVerfasst: 11.03.2009 11:56:59 
sven-l hat geschrieben:
Imho schon. .Paste ersetzt den markierten Teil mit sich selbst und setzt das Caret ans Ende des eingefügten Texts.

Dann ist mir die Bedeutung von 1 und 5 nicht geläufig.
Vorher: Bild
Nachher: Bild

Besseres Beispiel, um Zweifel auszuräumen:
Code:
Set tm = CreateObject("TextMaker.Application")
tm.Application.Visible = True
tm.ActiveDocument.Selection.SetRange 1, 5
tm.ActiveDocument.Selection.Copy
tm.ActiveDocument.Selection.SetRange 6, 8
tm.ActiveDocument.Selection.Paste


Nach oben
  
 
BeitragVerfasst: 11.03.2009 15:47:26 
Offline
SoftMaker Team
SoftMaker Team

Registriert: 09.04.2008 08:50:06
Beiträge: 6299
Wohnort: Nürnberg
SetRange arbeitet mit Einfügepositionen, die befinden sich _zwischen_ den Buchstaben:
SetRange 1, 5 -> selektiere Text zwischen 1. und 5. position, also nach dem 1. Zeichen und nach dem 5. Zeichen. Dadurch werden 5 - 1 = 4 Zeichen markiert.

_________________
Sven Leßmann
SoftMaker Software GmbH


Nach oben
 Profil  
 
BeitragVerfasst: 11.03.2009 16:01:23 
Also, entschuldige, dass ich schwer von Begriff bin, aber in der Online-Hilfe steht:
Zitat:
Setzt Anfangs- und Endpunkt der Selektion, indem Sie deren Zeichenpositionen übergeben.

Syntax:

SetRange Start, End

Parameter:

Start (Typ: Long) legt die Startposition der neuen Selektion fest, gezählt als Anzahl der Zeichen vom Dokumentanfang.

End (Typ: Long) legt die Endposition der neuen Selektion fest, gezählt als Anzahl der Zeichen vom Dokumentanfang.

Nehmen wir nochmal meine letzte Code-Version
Code:
Set tm = CreateObject("TextMaker.Application")
tm.Application.Visible = True
tm.ActiveDocument.Selection.SetRange 1, 5
tm.ActiveDocument.Selection.Copy
tm.ActiveDocument.Selection.SetRange 6, 8
tm.ActiveDocument.Selection.Paste

Wenn ich das Programm auf den Text im Anhang anwende, ist es egal, wo der Cursor steht, oder was ich im Text selektiere. Gehen wir davon aus, dass ich das erste Wort "Zeile" in der sechsten Zeile von unten selektiere (d.h. es wird weiß auf schwarz markiert). Das Programm tut dann folgendes
Es kopiert nicht die Zeichenfolge IRGEN und auch nicht IRGE oder RGEN (Zeichen ab Nähe Anfang des Dokuments)
es selektiert nicht die Zeichenfolge EIN TE oder irgendwas ein paar Zeichen weiter
es kopiert bestenfalls den zuletzt, vor der Ausführung des Skriptes bereits vorhandenen Inhalt der Zwischenablage ans Ende des Dokuments (in diesem Fall öfter mal das Basic-Skript selbst, aber das ist eigentlich egal.)

Da das unmöglich das erwünschte Verhalten sein kann, wäre meine Frage nunmehr: Was sonst?


Dateianhänge:
test.tmd [91.63 KiB]
111-mal heruntergeladen
Nach oben
  
 
BeitragVerfasst: 12.03.2009 10:23:36 
Offline
SoftMaker Team
SoftMaker Team

Registriert: 03.12.2003 14:32:06
Beiträge: 2976
Ich weiß nicht, was an diesem Dokument besonders ist, aber damit funktioniert SetRange tatsächlich nicht. Nehme ich ein leeres Dokument und tippe einfach ein paar Buchstaben, dann geht SetRange.

Ab damit an die Programmierer...

_________________
Martin Kotulla
SoftMaker Software GmbH


Nach oben
 Profil  
 
BeitragVerfasst: 12.03.2009 11:24:10 
Offline
SoftMaker Team
SoftMaker Team

Registriert: 03.12.2003 14:32:06
Beiträge: 2976
So, die Absätze enthielten ein spezielles Flag, weil sie wohl irgendwann einmal Objekte enthielten.

Die SetRange-Funktion hat das Flag abgefragt, was sie gar nicht sollte -> nächstes Servicepack.

_________________
Martin Kotulla
SoftMaker Software GmbH


Nach oben
 Profil  
 
BeitragVerfasst: 12.03.2009 11:28:06 
WOW! Wir sind gut, sage ich jetzt mal. =D>
Konnte meinen ersten Entwurf nicht mal ans Forum schicken, so schnell kam das Öpdate.

III. Pardon an Sven: Ich hätte gleich eine Beispieldatei schicken sollen. Die Vorlagen lauern halt überall.


Nach oben
  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 8 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


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:  
Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de