Помощник
Здравствуйте, гость ( Вход | Регистрация )
|
Гость_Kettel_*
|
13:07:2004, 22:15
|
|
Инопланетный гость |
Как, работая с MS Word из своего приложения, использовать такие его возможности, как:
- верхний и нижний колонтитулы, - построение оглавлений, - нумерация страниц, - разбиение текста на 2 колонки? Delphi 7, Word 2003 |
|
Сообщение
#1
|
|
![]() |
|
|
14:07:2004, 08:53
|
|
Почетный секретчик ![]() ![]() ![]() ![]() ![]() Группа: Модеры Сообщений: 1 169 Регистрация: 30:09:2003 Из: Брест Пользователь №: 58 Специализация: Пиво Репутация: 2
|
попробуй для начала на VBA (макросы), а потом переноси на Delphi.
p.s. оглавление точно можно сделать - я делал, всё остальное тоже (на 99,99999% уверен) |
|
Сообщение
#2
|
|
|
|
14:07:2004, 09:08
|
|
MANTICora Software ![]() ![]() ![]() ![]() ![]() Группа: Lotus team Сообщений: 826 Регистрация: 8:08:2003 Из: Минск, Беларусь Пользователь №: 4 Специализация: Lotus Domino & Notes, Delphi Репутация: 1
|
Работать через OLE
Код unit Unit1;
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Buttons, ComCtrls, ExtCtrls, OleCtnrs; type TForm1 = class(TForm) OleContainer1: TOleContainer; Panel1: TPanel; StatusBar1: TStatusBar; mbLoad: TSpeedButton; mbPrint: TSpeedButton; OpenDialog1: TOpenDialog; procedure mbLoadClick(Sender: TObject); procedure mbPrintClick(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.mbLoadClick(Sender: TObject); begin // Покажем диалог, и если он отработал, то загрузим в контейнер if OpenDialog1.Execute and (OpenDialog1.FileName<>'') then OleContainer1.CreateObjectFromFile(OpenDialog1.FileName,false); // Если загрузилось что-нибудь, то покажем if OleContainer1.State <> osEmpty then OleContainer1.DoVerb(ovShow); end; procedure TForm1.mbPrintClick(Sender: TObject); var V : Variant; begin if OleContainer1.State = osEmpty then Begin MessageDlg('OLE не загружен !!', mtError, [mbOk],0); exit; end; // Получаем объект, который воплощает в себе WordBasic интерфейс V := OleContainer1.OleObject.Application.WordBasic; // Командуем до одурения .... V.FilePrint; end; end. |
|
Сообщение
#3
|
|
|
|
14:07:2004, 11:01
|
|
Божественный ![]() ![]() ![]() ![]() ![]() Группа: Модеры Сообщений: 2 450 Регистрация: 27:05:2004 Из: Минск Пользователь №: 561 Специализация: Delphi, RDBMS, C# Репутация: 8
|
А что бы узанть как командовать .. сначала создаёш макрос которой делает то что тебе требуется, а дальше смотриш его код и просто переписываеш с использованием Дельфей.
|
|
Сообщение
#4
|
|
|
Гость_Garick_*
|
3:03:2005, 16:20
|
|
Инопланетный гость |
Привет Мужики, я уже неделю бьюсь с Word'ом через Делфи и ни как не мегу воплатить мечту!!! Вывезти в Делфи номер текущей страницы и количество страниц всего открытого документа, ВЫРУЧАЙТЕ!!!
|
|
Сообщение
#5
|
|
|
|
4:03:2005, 08:00
|
|
Божественный ![]() ![]() ![]() ![]() ![]() Группа: Модеры Сообщений: 2 450 Регистрация: 27:05:2004 Из: Минск Пользователь №: 561 Специализация: Delphi, RDBMS, C# Репутация: 8
|
Судя по всему это должно помочь:
Код WordDocument1.Range.Information(wdActiveEndPageNumber или wdActiveEndAdjustedPageNumber) - активная страница
WordDocument1.Range.Information(wdNumberOfPagesInDocument) - количество страниц в документе |
|
Сообщение
#6
|
|
|
Гость_Guest_andrey1_*
|
10:03:2005, 17:15
|
|
Инопланетный гость |
Доброго времени суток.
Подскажите пожалуйста, как из документа Word вытащить часть текста с формулой (MathType) до определённого символа, и дописать или записать в другой документ Word ? |
|
Сообщение
#7
|
|
|
|
11:03:2005, 07:43
|
|
Божественный ![]() ![]() ![]() ![]() ![]() Группа: Модеры Сообщений: 2 450 Регистрация: 27:05:2004 Из: Минск Пользователь №: 561 Специализация: Delphi, RDBMS, C# Репутация: 8
|
Наверно как самый простой вариант выделить нужную часть текста .. скопировать в буфер обмена и затем в другом документе вставить...
|
|
Сообщение
#8
|
|
|
Гость_Guest_andrey1_*
|
11:03:2005, 15:15
|
|
Инопланетный гость |
Цитата(Barmutik @ 11:03:2005, 10:43 ) Наверно как самый простой вариант выделить нужную часть текста .. скопировать в буфер обмена и затем в другом документе вставить... Забыл добавить, что сделать это нужно средствами Delphi |
|
Сообщение
#9
|
|
|
|
14:03:2005, 07:44
|
|
Божественный ![]() ![]() ![]() ![]() ![]() Группа: Модеры Сообщений: 2 450 Регистрация: 27:05:2004 Из: Минск Пользователь №: 561 Специализация: Delphi, RDBMS, C# Репутация: 8
|
Ну так и в чём проблема ? Создаём Ком сервер у него дёпгаем методы и всё ...
Я имел ввиду что из Дельфи в ворде выделяем требуемый участок текста, затем его копируем, затем вставляем в другой Ворд .. опять же посредством команды из Дельфи... |
|
Сообщение
#10
|
|
|
Гость_Nadin_*
|
23:03:2005, 09:25
|
|
Инопланетный гость |
Работа в Delphi с Word через компонент Ekrtf
Отчёт master detail не могу докопаться и розобраться работоть с опцией /noef/ Можно ли группировать по одному Dataset Не получается. Други муж Помогите |
|
Сообщение
#11
|
|
|
Гость_Guest_*
|
21:07:2005, 10:35
|
|
Инопланетный гость |
Никак не могу выровнять две колонки - стандартные примемы через разметку страницы работают не всегда. Подскажите, что делать.
|
|
Сообщение
#12
|
|
|
|
21:05:2006, 13:56
|
|
Новенький ![]() Группа: Программист Сообщений: 83 Регистрация: 9:04:2006 Из: Беларусь Пользователь №: 3 271 Специализация: Прикладное программирование Репутация: 0
|
Нрод, у меня тоже пожар!
Код ShellExecute(Handle, 'open', PANSICHAR(pathW), nil, nil, SW_ERASE); Вот только глюков дофига 1. При закрытии приложения Делфи - Ворд тоже закрывается 2. Два раза открыть ворд в приложении невозможно! Что делать? |
|
Сообщение
#13
|
|
|
|
21:05:2006, 19:32
|
|
Новенький ![]() Группа: Программист Сообщений: 18 Регистрация: 25:10:2005 Пользователь №: 2 465 Специализация: Firebird Репутация: 0
|
Нрод, у меня тоже пожар! Вот только глюков дофига 1. При закрытии приложения Делфи - Ворд тоже закрывается 2. Два раза открыть ворд в приложении невозможно! Что делать? Код ShellExecute(nil, ...); Читайте значения параметров. А что флаг SW_ERASE обозначает? Сообщение отредактировал mikola1 - 21:05:2006, 19:37 |
|
Сообщение
#14
|
|
|
|
13:08:2007, 07:43
|
|
Новенький ![]() Группа: Программист Сообщений: 1 Регистрация: 13:08:2007 Пользователь №: 12 300 Специализация: математик, системный программист Репутация: 0
|
Ребята, хелп плиз...
Проблема такая: нужно выровнить текст, но не весь, а конкретный кусок. Выделяю этот кусок текста, присоединяю WordParagraphFormat к нему, выравниваю WordDocument.Paragraphs.Alignment := wdAlignParagraphRight; но по правому краю выравнивается весь текст :-(, а остальной текст должен сохранить выравнивание по левому краю... Как быть? |
|
Сообщение
#15
|
|
|
|
16:08:2007, 13:10
|
|
Новенький ![]() Группа: Программист Сообщений: 7 Регистрация: 11:05:2006 Пользователь №: 4 143 Специализация: Delphi, MS SQL Репутация: 0
|
Для: ApeX
WordDocument.Selection.Paragraphs.Alignment := wdAlignParagraphRight |
|
Сообщение
#16
|
|
![]() |
|
Текстовая версия | Сейчас: 5:07:2008 - 04:48 |