Версия для печати темы
Форум программистов _ Delphi - СОМ _ Delphi + MS Word
Автор: Kettel 13:07:2004, 22:15
Как, работая с MS Word из своего приложения, использовать такие его возможности, как:
- верхний и нижний колонтитулы,
- построение оглавлений,
- нумерация страниц,
- разбиение текста на 2 колонки?
Delphi 7, Word 2003
Автор: ???? 14:07:2004, 08:53
попробуй для начала на VBA (макросы), а потом переноси на Delphi.
p.s. оглавление точно можно сделать - я делал, всё остальное тоже (на 99,99999% уверен)
Автор: Vagor.ini 14:07:2004, 09:08
Работать через 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.
Автор: Barmutik 14:07:2004, 11:01
А что бы узанть как командовать .. сначала создаёш макрос которой делает то что тебе требуется, а дальше смотриш его код и просто переписываеш с использованием Дельфей.
Автор: Garick 3:03:2005, 16:20
Привет Мужики, я уже неделю бьюсь с Word'ом через Делфи и ни как не мегу воплатить мечту!!! Вывезти в Делфи номер текущей страницы и количество страниц всего открытого документа, ВЫРУЧАЙТЕ!!!
Автор: Barmutik 4:03:2005, 08:00
Судя по всему это должно помочь:
Код
WordDocument1.Range.Information(wdActiveEndPageNumber или wdActiveEndAdjustedPageNumber) - активная страница
WordDocument1.Range.Information(wdNumberOfPagesInDocument) - количество страниц в документе
Автор: Guest_andrey1 10:03:2005, 17:15
Доброго времени суток.
Подскажите пожалуйста, как из документа Word вытащить часть текста с формулой (MathType) до определённого символа, и дописать или записать в другой документ Word ?
Автор: Barmutik 11:03:2005, 07:43
Наверно как самый простой вариант выделить нужную часть текста .. скопировать в буфер обмена и затем в другом документе вставить...
Автор: Guest_andrey1 11:03:2005, 15:15
Цитата(Barmutik @ 11:03:2005, 10:43 )
Наверно как самый простой вариант выделить нужную часть текста .. скопировать в буфер обмена и затем в другом документе вставить...
Забыл добавить, что сделать это нужно средствами Delphi
Автор: Barmutik 14:03:2005, 07:44
Ну так и в чём проблема ? Создаём Ком сервер у него дёпгаем методы и всё ...
Я имел ввиду что из Дельфи в ворде выделяем требуемый участок текста, затем его копируем, затем вставляем в другой Ворд .. опять же посредством команды из Дельфи...
Автор: Nadin 23:03:2005, 09:25
Работа в Delphi с Word через компонент Ekrtf
Отчёт master detail не могу докопаться и розобраться работоть с опцией /noef/ Можно ли группировать по одному Dataset Не получается. Други муж Помогите
Автор: Guest 21:07:2005, 10:35
Никак не могу выровнять две колонки - стандартные примемы через разметку страницы работают не всегда. Подскажите, что делать.
Автор: Real-Mulik 21:05:2006, 13:56
Нрод, у меня тоже пожар!
Открываю Ворд след. образом:
Код
ShellExecute(Handle, 'open', PANSICHAR(pathW), nil, nil, SW_ERASE);
Вот только глюков дофига

!
1. При закрытии приложения Делфи - Ворд тоже закрывается
2. Два раза открыть ворд в приложении невозможно!
Что делать?
Автор: mikola1 21:05:2006, 19:32
Цитата(Real-Mulik @ 21:05:2006, 15:56 )

Нрод, у меня тоже пожар!

Открываю Ворд след. образом:
Вот только глюков дофига

!
1. При закрытии приложения Делфи - Ворд тоже закрывается
2. Два раза открыть ворд в приложении невозможно!
Что делать?

Код
ShellExecute(nil, ...);
Читайте значения параметров. А что флаг SW_ERASE обозначает?
Автор: ApeX 13:08:2007, 07:43
Ребята, хелп плиз...
Проблема такая: нужно выровнить текст, но не весь, а конкретный кусок.
Выделяю этот кусок текста, присоединяю WordParagraphFormat к нему, выравниваю
WordDocument.Paragraphs.Alignment := wdAlignParagraphRight;
но по правому краю выравнивается весь текст :-(, а остальной текст должен сохранить выравнивание по левому краю...
Как быть?
Автор: abv 16:08:2007, 13:10
Для: ApeX
WordDocument.Selection.Paragraphs.Alignment := wdAlignParagraphRight
Русская версия Invision Power Board (http://www.nulled.ws)
© Invision Power Services (http://www.nulled.ws)