Форум программистов CODEBY.NET Хостинг в Беларуси — Active Technologies

Разработка бизнес сайтов

Нужны клиенты? Тогда сюда быстрее...
X   Сообщение сайта
(Сообщение закроется через 2 секунды)

Здравствуйте, гость ( Вход | Регистрация )




> Delphi + MS Word, Возможности MS word - как использовать?
Гость_Kettel_*
сообщение 13:07:2004, 22:15
Цитата Ответить 





Инопланетный гость






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

Delphi 7, Word 2003
Подняться вверх 
 
Сообщение #1
 
Новая тема 
Ответов (1 - 15)
????
Вставить ник
сообщение 14:07:2004, 08:53
Цитата Ответить 


Почетный секретчик
*****

Группа: Модеры
Сообщений: 1 169
Регистрация: 30:09:2003
Из: Брест
Пользователь №: 58
Специализация: Пиво



Репутация: - 2 +


попробуй для начала на VBA (макросы), а потом переноси на Delphi.
p.s. оглавление точно можно сделать - я делал, всё остальное тоже (на 99,99999% уверен)
Подняться вверх 
 
Сообщение #2
Vagor.ini
Вставить ник
сообщение 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
Barmutik
Вставить ник
сообщение 14:07:2004, 11:01
Цитата Ответить 


Божественный
*****

Группа: Модеры
Сообщений: 2 450
Регистрация: 27:05:2004
Из: Минск
Пользователь №: 561
Специализация: Delphi, RDBMS, C#



Репутация: - 8 +


А что бы узанть как командовать .. сначала создаёш макрос которой делает то что тебе требуется, а дальше смотриш его код и просто переписываеш с использованием Дельфей.
Подняться вверх 
 
Сообщение #4
Гость_Garick_*
сообщение 3:03:2005, 16:20
Цитата Ответить 





Инопланетный гость






Привет Мужики, я уже неделю бьюсь с Word'ом через Делфи и ни как не мегу воплатить мечту!!! Вывезти в Делфи номер текущей страницы и количество страниц всего открытого документа, ВЫРУЧАЙТЕ!!! sad.gif
Подняться вверх 
 
Сообщение #5
Barmutik
Вставить ник
сообщение 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
Barmutik
Вставить ник
сообщение 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
Barmutik
Вставить ник
сообщение 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
Real-Mulik
Вставить ник
сообщение 21:05:2006, 13:56
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 83
Регистрация: 9:04:2006
Из: Беларусь
Пользователь №: 3 271
Специализация: Прикладное программирование



Репутация: - 0 +


Нрод, у меня тоже пожар! sad.gif Открываю Ворд след. образом:

Код
ShellExecute(Handle, 'open', PANSICHAR(pathW), nil, nil, SW_ERASE);


Вот только глюков дофига ohmy.gif !
1. При закрытии приложения Делфи - Ворд тоже закрывается
2. Два раза открыть ворд в приложении невозможно!
Что делать? sad.gif
Подняться вверх 
 
Сообщение #13
mikola1
Вставить ник
сообщение 21:05:2006, 19:32
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 18
Регистрация: 25:10:2005
Пользователь №: 2 465
Специализация: Firebird



Репутация: - 0 +


Цитата(Real-Mulik @ 21:05:2006, 15:56 ) *
Нрод, у меня тоже пожар! sad.gif Открываю Ворд след. образом:
Вот только глюков дофига ohmy.gif !
1. При закрытии приложения Делфи - Ворд тоже закрывается
2. Два раза открыть ворд в приложении невозможно!
Что делать? sad.gif


Код
ShellExecute(nil, ...);


Читайте значения параметров. А что флаг SW_ERASE обозначает?

Сообщение отредактировал mikola1 - 21:05:2006, 19:37
Подняться вверх 
 
Сообщение #14
ApeX
Вставить ник
сообщение 13:08:2007, 07:43
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 1
Регистрация: 13:08:2007
Пользователь №: 12 300
Специализация: математик, системный программист



Репутация: - 0 +


Ребята, хелп плиз...
Проблема такая: нужно выровнить текст, но не весь, а конкретный кусок.
Выделяю этот кусок текста, присоединяю WordParagraphFormat к нему, выравниваю
WordDocument.Paragraphs.Alignment := wdAlignParagraphRight;
но по правому краю выравнивается весь текст :-(, а остальной текст должен сохранить выравнивание по левому краю...
Как быть?
Подняться вверх 
 
Сообщение #15
abv
Вставить ник
сообщение 16:08:2007, 13:10
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 7
Регистрация: 11:05:2006
Пользователь №: 4 143
Специализация: Delphi, MS SQL



Репутация: - 0 +


Для: ApeX
WordDocument.Selection.Paragraphs.Alignment := wdAlignParagraphRight
Подняться вверх 
 
Сообщение #16


Ответить  Новая тема 

 

RSS Текстовая версия Сейчас: 5:07:2008 - 04:48
с нами можно связаться по:
телефону: +375-(29)-632-60-67
e-mail:info@codeby.net