Delphi + MS Word

  • Автор темы Kettel
  • Дата начала
Статус
Закрыто для дальнейших ответов.
K

Kettel

Гость
#1
Как, работая с MS Word из своего приложения, использовать такие его возможности, как:
- верхний и нижний колонтитулы,
- построение оглавлений,
- нумерация страниц,
- разбиение текста на 2 колонки?

Delphi 7, Word 2003
 
?

????

Гость
#2
попробуй для начала на VBA (макросы), а потом переноси на Delphi.
p.s. оглавление точно можно сделать - я делал, всё остальное тоже (на 99,99999% уверен)
 
V

Vagor.ini

Гость
#3
Работать через 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.
 
B

Barmutik

Гость
#4
А что бы узанть как командовать .. сначала создаёш макрос которой делает то что тебе требуется, а дальше смотриш его код и просто переписываеш с использованием Дельфей.
 
G

Garick

Гость
#5
Привет Мужики, я уже неделю бьюсь с Word'ом через Делфи и ни как не мегу воплатить мечту!!! Вывезти в Делфи номер текущей страницы и количество страниц всего открытого документа, ВЫРУЧАЙТЕ!!! ;)
 
B

Barmutik

Гость
#6
Судя по всему это должно помочь:

Код:
WordDocument1.Range.Information(wdActiveEndPageNumber или wdActiveEndAdjustedPageNumber) - активная страница
WordDocument1.Range.Information(wdNumberOfPagesInDocument) - количество страниц в документе
 
G

Guest_andrey1

Гость
#7
Доброго времени суток.
Подскажите пожалуйста, как из документа Word вытащить часть текста с формулой (MathType) до определённого символа, и дописать или записать в другой документ Word ?
 
B

Barmutik

Гость
#8
Наверно как самый простой вариант выделить нужную часть текста .. скопировать в буфер обмена и затем в другом документе вставить...
 
G

Guest_andrey1

Гость
#9
<!--QuoteBegin-Barmutik+11:03:2005, 10:43 -->
<span class="vbquote">(Barmutik @ 11:03:2005, 10:43 )</span><!--QuoteEBegin-->Наверно как самый простой вариант выделить нужную часть текста .. скопировать в буфер обмена и затем в другом документе вставить...[/quote]
Забыл добавить, что сделать это нужно средствами Delphi
 
B

Barmutik

Гость
#10
Ну так и в чём проблема ? Создаём Ком сервер у него дёпгаем методы и всё ...

Я имел ввиду что из Дельфи в ворде выделяем требуемый участок текста, затем его копируем, затем вставляем в другой Ворд .. опять же посредством команды из Дельфи...
 
N

Nadin

Гость
#11
Работа в Delphi с Word через компонент Ekrtf
Отчёт master detail не могу докопаться и розобраться работоть с опцией /noef/ Можно ли группировать по одному Dataset Не получается. Други муж Помогите
 
G

Guest

Гость
#12
Никак не могу выровнять две колонки - стандартные примемы через разметку страницы работают не всегда. Подскажите, что делать.
 
R

Real-Mulik

Гость
#13
Нрод, у меня тоже пожар! :) Открываю Ворд след. образом:

Код:
ShellExecute(Handle, 'open', PANSICHAR(pathW), nil, nil, SW_ERASE);
Вот только глюков дофига :( !
1. При закрытии приложения Делфи - Ворд тоже закрывается
2. Два раза открыть ворд в приложении невозможно!
Что делать? :(
 
M

mikola1

Гость
#14
Нрод, у меня тоже пожар! :( Открываю Ворд след. образом:
Вот только глюков дофига :o !
1. При закрытии приложения Делфи - Ворд тоже закрывается
2. Два раза открыть ворд в приложении невозможно!
Что делать? :(
Код:
ShellExecute(nil, ...);
Читайте значения параметров. А что флаг SW_ERASE обозначает?
 
A

ApeX

Гость
#15
Ребята, хелп плиз...
Проблема такая: нужно выровнить текст, но не весь, а конкретный кусок.
Выделяю этот кусок текста, присоединяю WordParagraphFormat к нему, выравниваю
WordDocument.Paragraphs.Alignment := wdAlignParagraphRight;
но по правому краю выравнивается весь текст :-(, а остальной текст должен сохранить выравнивание по левому краю...
Как быть?
 
A

abv

Гость
#16
Для: ApeX
WordDocument.Selection.Paragraphs.Alignment := wdAlignParagraphRight
 

Гость
#17
Кто подскажет как из Imege в Delphi поместить картинку в Word??? :(
 
Статус
Закрыто для дальнейших ответов.