Entwickler-Ecke

Windows API - In Word text kopieren...


Bumpy Johnson - So 04.04.04 18:51
Titel: In Word text kopieren...
hi,

ich hab ein programm geschrieben, dass auf Word zugreift. Soweit, klappt auch alles. Ich kann schon text von Delphi aus einfügen bzw. ersetzen. Aber jetzt möchte ich nach dem Delphi alles eingefügt hat, den ganzen text kopieren der in Word jetzt steht kopieren und danach wieder einfügen... Das ist das Problemm. Ich weiß nicht wie ich das machen soll...

Hat wer ne Idee...?


toms - So 04.04.04 19:19

Hi,

Zitat:
den ganzen text kopieren der in Word jetzt steht kopieren und danach wieder einfügen.


Was macht das für einen Sinn?
Anyway, hier 2 Funktionen, welche ich mal geschrieben habe:

...RTF-Text aus einer MS Word Instanz auslesen (ohne Zwischenablage)?
http://www.swissdelphicenter.ch/de/showcode.php?id=2059

...RTF-Text in ein MS Word Dokument einfügen?
http://www.swissdelphicenter.ch/de/showcode.php?id=2060


Bumpy Johnson - Mo 05.04.04 12:19

Also, ich will in ein vorgefertigtes Word-Doc. verschiedene Schlüsselwörter mit Angaben aus dem Delphiprog ersetzen. jetzt ist der text der in Word steht nur einmal vorhanden, aber ich brauche den Text drei mal und zwar den gleichen..
Es gibt die Befehle ...content.select, ..content.copy und noch ...content.past! Damit kann ich den ganzen Text kopieren und wieder einfügen nur nich an der richtigen Stelle. Eigentlich brauch ich nur den Cursor ans ende des Text stellen.
ABer das hab ich auch noch nicht hinbekommen...
ein bisschen klarer geworden


MSCH - Mo 05.04.04 18:10

Lass mal den Macro-Recorder in WOrd mitlaufen, wenn du deine gewünschten Schritte manuell ausführst.
Anschließend schau dir das Makro an, in der Regel hast du damit fast schon dein Delphi-Quelltext.

grez
msch


Bumpy Johnson - Mo 05.04.04 20:19

Lösung:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
uses variants, OleServer, Word2000;

var
unitole, count   : OleVariant;

unitole := wdLine;
count := 2;

word.Selection.WholeStory;
word.Selection.Copy;
word.Selection.MoveDown(unitole,count,EmptyParam);
word.Selection.Paste;


So geht es! Danke für den genialen Tipp !!