Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.06.17;
Скачать: CL | DM;

Вниз

TWordApplication   Найти похожие ветки 

 
skiph ©   (2002-06-03 06:40) [0]

Как можно создать новый документ? Или где можно скачать полный хэлп по вордовым компонентам.
Есть метод TWordApplication.Documents.Add(), но у него куча параметров, и какой что означает нигде не написано (уже скачал один справочник).


 
EternalWonderer   (2002-06-03 10:33) [1]

Читай справку по WordBasic из комплекта Office.

Function GetWordDoc: _Document;
Var MSWord: _Global;
EP,TemplateNameToOpen: OleVariant;
Begin
EP := EmptyParam;
//Открытие нового документа Normal (poNew) или из шаблона (poNewTempl).
Try // попытка найти и подключиться к открытому Word
MSWord := CoWordGlobal.Create;
Case DocOut Of
0{poNew}: Result := MSWord.Documents.Add(EP,EP{,EP,EP{});
1{poNewTempl}: Begin
TemplateNameToOpen := ...;
Result := MSWord.Documents.Add(TemplateNameToOpen,EP{,EP,EP{});
End;
2{poCurDoc}: Result := MSWord.ActiveDocument;
End;
Except // в случае неудачи запуск нового экземпляра Word
Result := CoWordDocument.Create;
If DocOut = 1{poNewTempl} Then Begin
TemplateNameToOpen := ...
Result := Result.Application.Documents.Add(TemplateNameToOpen,EP{,EP,EP{});
End;
End;
End;

Закомментированные EP в фигурных скобках - для Office2000. Правда, при этом работать с 97 становится нельзя. Наоборот - можно.


 
AFROLOV ©   (2002-06-03 10:41) [2]

К выше сказанному, можно еще посоветовать использовать запись макросов. Выполнив последовательность действий будет получена необходимая последовательность команд.


 
skiph ©   (2002-06-03 11:43) [3]

А ну так-то я тоже умею. :( Я думал с компонентами больше возможностей будет.


 
skiph ©   (2002-06-03 11:46) [4]

Ой извиняюсь ошибся. Спасибо


 
AFROLOV ©   (2002-06-03 11:57) [5]


> Я думал с компонентами больше возможностей будет.

Возможностей будет не больше чем позволяет объект ворда.


 
kull ©   (2002-06-03 13:30) [6]

Открываем Word, нажимаем записать макрос, делаем то что нужно (например создаем новый документ), а потом смотрим что в макросе записалось и используем в Delphi.
Очени помогает когда не знаешь как чтот-то сделать в Word или Excel.


 
skiph ©   (2002-06-04 04:17) [7]

Я раньше так же делал (через Variant), только не всякий макрос проходил в дельфе, вот я и решил попробовать эти компоненты. Кстати, кто-нибудь знает как можно узнать сколько сантиметров (или пунктов, или еще чего) осталось до конца страницы, чтобы отчеты красиво формировать?


 
AFROLOV ©   (2002-06-04 10:37) [8]

посмотри Information в справке по VBA


 
skiph ©   (2002-06-05 06:29) [9]

Ашо вопрос. Часто в качестве аргументов требуется указать переменную типа OLEVariant. Пробовал просто заводить переменные соответствующего типа и им присваивать нужные значения, но программа вылетает. Например, команда MoveRight(OleV1,OleV2,EmptyParam)


 
MBo ©   (2002-06-05 06:38) [10]

хелп, правда, неполный, есть на странице Download у Borland
(d5ms97.zip)
Кое-что можно посмотреть на http://www.afalinasoft.com/


 
skiph ©   (2002-06-05 09:28) [11]

Есть у меня уж такой хэлп (борландовский). :( Толку от него - больше места занимает


 
EternalWonderer   (2002-06-05 09:42) [12]

> skiph © (05.06.02 06:29)
Может, не тот тип присваиваешь?
Например, если в приведённом выше примере
присвоить TemplateNameToOpen := "1" (Если есть такой файл :),
то всё пройдёт на-ура, а TemplateNameToOpen := 1 не прокатит.



 
skiph ©   (2002-06-05 10:51) [13]

Да нет:
OleV1:=9;OleV2:=1;
Application.Selection.MoveRight(OleV1,OleV2,EmptyParam);
не проходит.


 
EternalWonderer   (2002-06-05 16:14) [14]

А кто сказал, что первый параметр - цифра?
Вот макрос:
Selection.MoveLeft Unit:=wdCharacter, Count:=3
Selection.MoveRight Unit:=wdCharacter, Count:=3


 
EternalWonderer   (2002-06-05 16:52) [15]

А вот это из Word_TLB:
// Constants for enum WdUnits
type
WdUnits = TOleEnum;
const
wdCharacter = $00000001;
wdWord = $00000002;
wdSentence = $00000003;
wdParagraph = $00000004;
wdLine = $00000005;
wdStory = $00000006;
wdScreen = $00000007;
wdSection = $00000008;
wdColumn = $00000009;
wdRow = $0000000A;
wdWindow = $0000000B;
wdCell = $0000000C;
wdCharacterFormatting = $0000000D;
wdParagraphFormatting = $0000000E;
wdTable = $0000000F;
wdItem = $00000010;

Видимо, Word не находит справа от курсора Column и возвращает ошибку. Попробуй в первый параметр передать wdCharacter и убедись в том, что курсору есть куда двигаться вправо...


 
skiph ©   (2002-06-06 04:30) [16]

Согласен, прогнал. Лежачего не бьют :) Просто когда работал через vvWord:=CreateOleObject("Word.Application.8"); приходилось использовать цифры



Страницы: 1 вся ветка

Текущий архив: 2002.06.17;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.022 c
3-54988
Игорь_
2002-05-22 22:04
2002.06.17
Проблема с TIBQuery D6, IB6


14-55269
Димка
2002-05-13 22:10
2002.06.17
Ищу девушку


3-54978
friend
2002-05-17 12:12
2002.06.17
current_date


14-55278
[NIKEL]
2002-05-12 01:08
2002.06.17
А кто какие примеры функции хочет видеть в UBPFD???


3-54984
RiNat
2002-05-23 04:48
2002.06.17
THalcyonDataSet для чайника