Текущий архив: 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.48 MB
Время: 0.007 c