Цитата:
Сообщение от Syslenish
Так, у меня едет крыша)) Я разобралась с макросами, но теперь не знаю, как мне мой этот замечательный текст впихнуть именно в нужное мне место!
|
Значит так.
Создаёшь новый шаблон документа MSWord. В нужных местах вставляешь закладки: "Вставка" -> "Закладка...", даёшь закладке имя, допустим "Закладка1". Сохраняешь шаблон (допустим в папку с новым проектом) но не как документ, а как шаблон (т.е. файл с расширением .dot, а не .doc).
Далее создаёшь новый проект Delphi. На форму бросаешь компоненты TWordApplication и TWordDocument. У них есть свойство "ConnectKind", которое по-умолчанию имеет значение "ckRunningOrNew", сразу же меняешь это значение на "ckNewInstance". Почему? Потому что меня раздражает, когда я работаю в каком нибудь документе Word/Excel и тут к моему Word/Excel подключается какой-то скрипт, открывает в нём какие-то документы и всячески мешает работать, а ещё после всего этого (особая наглость) пытается закрыть приложение Word/Excel со всеми моими открытыми документами. А с параметром "ckNewInstance", скрипт тихонько себе запустит новое приложение (т.е. новый exe-шник winword.exe) и в нём так же тихонько будет что-то там делать.
Теперь бросай на форму кнопку TButton и цепляй такой обработчик OnClick к кнопке:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
doc: _Document;
o1, o2: OleVariant;
begin
WordApplication1.ConnectKind := ckNewInstance; // На всякий случай :)
WordApplication1.Connect;
try
o1 := ExtractFilePath(Application.ExeName) + 'Шаблон.dot';
doc := WordApplication1.Documents.Add(o1, EmptyParam, EmptyParam, EmptyParam);
WordDocument1.ConnectTo(doc);
try
o1 := wdGoToBookmark;
o2 := 'Закладка1';
WordDocument1.GoTo_(o1, EmptyParam, EmptyParam, o2).Select;
with WordApplication1.Selection do
begin
TypeText('Обычный текст ');
Font.Bold := 1;
TypeText('Жирный текст ');
Font.Bold := 0;
Font.Italic := 1;
TypeText('Курсивный текст ');
Font.Italic := 0;
Font.Superscript := 1;
TypeText('Верхний индекс ');
Font.Superscript := 0;
Font.Subscript := 1;
TypeText('Нижний индекс ');
Font.Subscript := 0;
TypeText('Греческая буква омега: ');
o1 := True;
InsertSymbol(937, EmptyParam, o1, EmptyParam);
TypeParagraph;
TypeText('Следующий абзац ');
end;
finally
WordDocument1.Disconnect;
end;
finally
WordApplication1.Visible := True;
WordApplication1.Disconnect;
end;
end;
Думаю разберёшься
