Модераторы: MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как создать следующую таблицу в MS Word? 
:(
    Опции темы
Riddik
Дата 4.6.2008, 12:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 598
Регистрация: 2.12.2006

Репутация: нет
Всего: нет



Таблицу создаю так:
Код

R1, RRTable: OleVariant;
....

R1:=WordApplication1.Selection.Range;
RRTable:=R1.Tables.Add(R1,29, 3,EmptyParam,EmptyParam);



Когда поработал с этой таблицей, ниже нужно создать следующую. 

Но попытки создать новую таблицу приводят к тому, что она создаётся всегда в первой ячейке прежней таблицы.
При этом метод вставки текста после талицы не помогает:

Код

Con:=7;
// Перемещяем курсор из таблицы 
WordApplication1.Selection.MoveDown(EmptyParam,Con,EmptyParam);
// вставляем текст
WordApplication1.Selection.InsertAfter('текст '+#13);
// снимаем выделение
WordApplication1.Selection.Collapse(D);



Текст вставляется после таблицы, но новая таблица всё равно создаётся в чейке первой.

Что делать?

Это сообщение отредактировал(а) Riddik - 4.6.2008, 12:23
PM MAIL   Вверх
Albinos_x
Дата 4.6.2008, 22:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 15
Всего: 108



код как вставляешь первую и вторую покажи


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
Riddik
Дата 5.6.2008, 00:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 598
Регистрация: 2.12.2006

Репутация: нет
Всего: нет



В том то и дело, что как вторую вставлять уже не знаю.

Просто так и делал - курсор опускал ниже первой таблицы:

Код

WordApplication1.Selection.MoveDown(EmptyParam,Con,EmptyParam);


И добавлял таблицу: 
Код

R1:=WordApplication1.Selection.Range;
RRTable:=R1.Tables.Add(R1,29, 3,EmptyParam,EmptyParam);


Добавлено через 14 минут и 7 секунд
Вот код создания первой таблицы:

Код

R1:=WordApplication1.Selection.Range;
RRTable:=R1.Tables.Add(R1,42, 3,EmptyParam,EmptyParam);


R1 и RRTable - это olevariant.


PM MAIL   Вверх
Albinos_x
Дата 5.6.2008, 22:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 15
Всего: 108



хм... попробуй так:
Код

var row,col:Integer;
    collaps:OleVariant;
    Rang:Range;
begin
...
// таблица 1
row:=29;
Col:=3;
Rang:=WordApplication1.Selection.Range;
WordApplication1.ActiveDocument.Tables.Add(Rang,row,col,EmptyParam,EmptyParam);
// добавляем параграф
Rang:=WordApplication1.ActiveDocument.Range(EmptyParam,EmptyParam).Paragraphs.Add(EmptyParam).Range;
// добавляем параграф
// если будет один раз то таблицы сольются
Rang:=WordApplication1.ActiveDocument.Range(EmptyParam,EmptyParam).Paragraphs.Add(EmptyParam).Range;
// таблица 2
row:=42;
Col:=3;
WordApplication1.ActiveDocument.Tables.Add(Rang,row,col,EmptyParam,EmptyParam);
...



--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
Данкинг
Дата 5.6.2008, 22:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 5
Всего: 130



А обязательно таблицы из Дельфи создавать? Я бы в подобном случае нарисовал бы всё, что нужно, в Ворде, сохранил в файл-шаблон, а из программы уже копировал бы его в нужное место, открывал и работал с таблицей.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Riddik
Дата 6.6.2008, 11:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 598
Регистрация: 2.12.2006

Репутация: нет
Всего: нет



Данкинг, обязательно, таковы требования!

Albinos_x, спасибо, как попробую - отпишусь!
PM MAIL   Вверх
Riddik
Дата 6.6.2008, 18:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 598
Регистрация: 2.12.2006

Репутация: нет
Всего: нет



Всё нормально, таблицы вставляются! Большое спасибо!

Только теперь текст, который был перед таблице, оказывается под ней.
Т.е. новым спобосбом таблица теперь вставляется перед всем текстом.

Но это уже не такая беда! Спасибо!
PM MAIL   Вверх
Riddik
Дата 6.6.2008, 19:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 598
Регистрация: 2.12.2006

Репутация: нет
Всего: нет



Всё отлично! Большое спасибо, всё получилось как надо!

Правда когда таблиц больше двух - очень долго, но ничего.

Последний вопрос. Как переместиться в самое начало документа?
PM MAIL   Вверх
Albinos_x
Дата 7.6.2008, 13:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 15
Всего: 108



приблизительно будет так:
Код

var L: OleVariant;
begin
L:=wdStory;
// в начало
WordApplication1.Selection.HomeKey(L,EmptyParam);



--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
Riddik
Дата 9.6.2008, 00:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 598
Регистрация: 2.12.2006

Репутация: нет
Всего: нет



Всё, спасибо огромнейшее!
PM MAIL   Вверх
Albinos_x
Дата 9.6.2008, 12:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 15
Всего: 108



не за что)


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: ActiveX/СОМ/CORBA"

Rrader
Girder

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Delphi
  • Вопросы по SQL и вопросы по базам данных, не связанные с Delphi, задавать здесь

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Rrader, Girder.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: ActiveX/СОМ/CORBA | Следующая тема »


 




[ Время генерации скрипта: 0.0577 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.