![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TWordApplication [D6, Win95/98]
skiph © (2002-06-03 06:40:00)Как можно создать новый документ? Или где можно скачать полный хэлп по вордовым компонентам.
Есть метод TWordApplication.Documents.Add(), но у него куча параметров, и какой что означает нигде не написано (уже скачал один справочник).
skiph (2002-06-06 04:30:00) [1]Согласен, прогнал. Лежачего не бьют :) Просто когда работал через vvWord:=CreateOleObject("Word.Application.8"); приходилось использовать цифры
EternalWonderer (2002-06-05 16:52:00) [2]А вот это из 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 и убедись в том, что курсору есть куда двигаться вправо...
EternalWonderer (2002-06-05 16:14:00) [3]А кто сказал, что первый параметр - цифра?
Вот макрос:
Selection.MoveLeft Unit:=wdCharacter, Count:=3
Selection.MoveRight Unit:=wdCharacter, Count:=3
skiph (2002-06-05 10:51:00) [4]Да нет:
OleV1:=9;OleV2:=1;
Application.Selection.MoveRight(OleV1,OleV2,EmptyParam);
не проходит.
EternalWonderer (2002-06-05 09:42:00) [5]> skiph © (05.06.02 06:29)
Может, не тот тип присваиваешь?
Например, если в приведённом выше примере
присвоить TemplateNameToOpen := "1" (Если есть такой файл :),
то всё пройдёт на-ура, а TemplateNameToOpen := 1 не прокатит.
skiph (2002-06-05 09:28:00) [6]Есть у меня уж такой хэлп (борландовский). :( Толку от него - больше места занимает
MBo (2002-06-05 06:38:00) [7]хелп, правда, неполный, есть на странице Download у Borland
(d5ms97.zip)
Кое-что можно посмотреть на http://www.afalinasoft.com/
skiph (2002-06-05 06:29:00) [8]Ашо вопрос. Часто в качестве аргументов требуется указать переменную типа OLEVariant. Пробовал просто заводить переменные соответствующего типа и им присваивать нужные значения, но программа вылетает. Например, команда MoveRight(OleV1,OleV2,EmptyParam)
AFROLOV (2002-06-04 10:37:00) [9]посмотри Information в справке по VBA
skiph (2002-06-04 04:17:00) [10]Я раньше так же делал (через Variant), только не всякий макрос проходил в дельфе, вот я и решил попробовать эти компоненты. Кстати, кто-нибудь знает как можно узнать сколько сантиметров (или пунктов, или еще чего) осталось до конца страницы, чтобы отчеты красиво формировать?
kull (2002-06-03 13:30:00) [11]Открываем Word, нажимаем записать макрос, делаем то что нужно (например создаем новый документ), а потом смотрим что в макросе записалось и используем в Delphi.
Очени помогает когда не знаешь как чтот-то сделать в Word или Excel.
AFROLOV (2002-06-03 11:57:00) [12]
> Я думал с компонентами больше возможностей будет.
Возможностей будет не больше чем позволяет объект ворда.
skiph (2002-06-03 11:46:00) [13]Ой извиняюсь ошибся. Спасибо
skiph (2002-06-03 11:43:00) [14]А ну так-то я тоже умею. :( Я думал с компонентами больше возможностей будет.
AFROLOV (2002-06-03 10:41:00) [15]К выше сказанному, можно еще посоветовать использовать запись макросов. Выполнив последовательность действий будет получена необходимая последовательность команд.
EternalWonderer (2002-06-03 10:33:00) [16]Читай справку по 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 становится нельзя. Наоборот - можно.