Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.06.17;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.007 c
1-55169
Karlush
2002-06-04 11:27
2002.06.17
Окна диалога


3-55009
AndruhaM
2002-05-23 16:06
2002.06.17
Как организовать поиск


1-55180
bmai
2002-06-03 15:16
2002.06.17
Вопрос по ActionList


1-55059
Holodilnik
2002-06-05 16:43
2002.06.17
запуск программы по завершению другой


1-55142
nea
2002-06-04 11:57
2002.06.17
Просмотр безразмерного текстового файла





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский