IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

 
 Ответить  Открыть новую тему 
> тип границ таблицы
marwell
сообщение 10.10.2012 14:22
Сообщение #1


Бывалый
***

Группа: Пользователи
Сообщений: 198
Пол: Мужской

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


создаю таблицу, назначаю толщину линий и цвет, таблица создается, но все равно остается невидимой blink.gif
что я делаю не так?
const 
wdLineWidth025pt=0;
var
Application, MyRange: variant;
begin
...
MyRange:=Application.ActiveDocument.Range(Application.ActiveDocument.Range.End-1,
Application.ActiveDocument.Range.End-1);
Application.ActiveDocument.Tables.Add(Range:=MyRange, NumRows:=13, NumColumns:=5);
Application.ActiveDocument.Tables.Item(1).Columns.Item(1).Width:=150;
Application.ActiveDocument.Tables.Item(1).Columns.Item(2).Width:=90;
Application.ActiveDocument.Tables.Item(1).Columns.Item(3).Width:=90;
Application.ActiveDocument.Tables.Item(1).Columns.Item(4).Width:=90;
Application.ActiveDocument.Tables.Item(1).Columns.Item(5).Width:=90;
Application.ActiveDocument.Tables.Item(1).Columns.Borders.OutsideLineWidth:=wdLineWidth025pt;
Application.ActiveDocument.Tables.Item(1).Columns.Borders.OutsideColorIndex:=clBlack;
...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
IUnknown
сообщение 10.10.2012 15:13
Сообщение #2


a.k.a. volvo877
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской

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


Во-первых, wdLineWidth025pt равен не 0, а 2. А во-вторых, цвет назначается не дельфийским clBlack, а Word-овским wdBlack = 1.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
marwell
сообщение 10.10.2012 15:19
Сообщение #3


Бывалый
***

Группа: Пользователи
Сообщений: 198
Пол: Мужской

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


Цитата(IUnknown @ 10.10.2012 15:13) *

Во-первых, wdLineWidth025pt равен не 0, а 2. А во-вторых, цвет назначается не дельфийским clBlack, а Word-овским wdBlack = 1.

wdLineWidth025pt исправил, а на wdBlack ругается
[Error]: Undeclared identifier: 'wdBlack'

Добавлено через 1 мин.
Цитата(marwell @ 10.10.2012 15:19) *

wdLineWidth025pt исправил, а на wdBlack ругается
[Error]: Undeclared identifier: 'wdBlack'

ой, недосмотрел smile.gif не ругается на wdBlack

Добавлено через 2 мин.
Цитата(marwell @ 10.10.2012 15:19) *

wdLineWidth025pt исправил, а на wdBlack ругается
[Error]: Undeclared identifier: 'wdBlack'

Добавлено через 1 мин.

ой, недосмотрел smile.gif не ругается на wdBlack

стопорится на этой строчке Application.ActiveDocument.Tables.Item(1).Columns.Borders.OutsideLineWidth:=wdLineWidth025pt;
Прикрепленное изображение
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
IUnknown
сообщение 10.10.2012 15:30
Сообщение #4


a.k.a. volvo877
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской

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


Не верю:


Эскизы прикрепленных изображений
Прикрепленное изображение
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
marwell
сообщение 10.10.2012 15:34
Сообщение #5


Бывалый
***

Группа: Пользователи
Сообщений: 198
Пол: Мужской

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


Цитата(IUnknown @ 10.10.2012 15:30) *

Не верю:

blink.gif а в чем еще может быть проблема, вызывающая такую ошибку?


procedure TForm1.Button1Click(Sender: TObject);
const wdReplaceAll=2;
wdLineWidth025pt=2;
var
Application, MyRange: variant;
begin
Application:= CreateOleObject('Word.Application');
Application.Documents.Open('E:\12.docx');
Application.ActiveDocument.Range(0, Application.ActiveDocument.Range.End).Copy;
Application.ActiveDocument.Close;
Application.Documents.Add;
Application.ActiveDocument.Range(0,0).Paste;
MyRange:=Application.ActiveDocument.Range(Application.ActiveDocument.Range.End-1,
Application.ActiveDocument.Range.End-1);
Application.ActiveDocument.Tables.Add(Range:=MyRange, NumRows:=13, NumColumns:=5);
Application.ActiveDocument.Tables.Item(1).Columns.Item(1).Width:=150;
Application.ActiveDocument.Tables.Item(1).Columns.Item(2).Width:=90;
Application.ActiveDocument.Tables.Item(1).Columns.Item(3).Width:=90;
Application.ActiveDocument.Tables.Item(1).Columns.Item(4).Width:=90;
Application.ActiveDocument.Tables.Item(1).Columns.Item(5).Width:=90;
Application.ActiveDocument.Tables.Item(1).Columns.Borders.OutsideLineWidth:=wdLineWidth025pt;
Application.ActiveDocument.Tables.Item(1).Columns.Borders.OutsideColorIndex:=1;
Application.ActiveDocument.Save;
Application.ActiveDocument.Close;
Application.Quit;
Application:=UnAssigned;

end;

end.




Добавлено через 4 мин.
Цитата(marwell @ 10.10.2012 15:34) *

blink.gif а в чем еще может быть проблема, вызывающая такую ошибку?
procedure TForm1.Button1Click(Sender: TObject);
const wdReplaceAll=2;
wdLineWidth025pt=2;
var
Application, MyRange: variant;
begin
Application:= CreateOleObject('Word.Application');
Application.Documents.Open('E:\12.docx');
Application.ActiveDocument.Range(0, Application.ActiveDocument.Range.End).Copy;
Application.ActiveDocument.Close;
Application.Documents.Add;
Application.ActiveDocument.Range(0,0).Paste;
MyRange:=Application.ActiveDocument.Range(Application.ActiveDocument.Range.End-1,
Application.ActiveDocument.Range.End-1);
Application.ActiveDocument.Tables.Add(Range:=MyRange, NumRows:=13, NumColumns:=5);
Application.ActiveDocument.Tables.Item(1).Columns.Item(1).Width:=150;
Application.ActiveDocument.Tables.Item(1).Columns.Item(2).Width:=90;
Application.ActiveDocument.Tables.Item(1).Columns.Item(3).Width:=90;
Application.ActiveDocument.Tables.Item(1).Columns.Item(4).Width:=90;
Application.ActiveDocument.Tables.Item(1).Columns.Item(5).Width:=90;
Application.ActiveDocument.Tables.Item(1).Columns.Borders.OutsideLineWidth:=wdLineWidth025pt;
Application.ActiveDocument.Tables.Item(1).Columns.Borders.OutsideColorIndex:=1;
Application.ActiveDocument.Save;
Application.ActiveDocument.Close;
Application.Quit;
Application:=UnAssigned;

end;

end.


аа, блин, забыл
Application.ActiveDocument.Tables.Item(1).Columns.Borders.OutsideLineStyle:=wdLineStyleSingle;


Добавлено через 1 мин.
спасибо большое smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
marwell
сообщение 10.10.2012 20:20
Сообщение #6


Бывалый
***

Группа: Пользователи
Сообщений: 198
Пол: Мужской

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


гм, границы теперь видны, но только границы таблицы... линии ячеек невидимы sad.gif можно ли задать цвет линий сразу для всех ячеек? почитал литературу, но там только для конкретных ячеек нашел примеры

Добавлено через 14 мин.
кажется нашел, надо выделить таблицу и указать толщину линии
Application.ActiveDocument.Tables.Item(1).Select;
Application.Selection.Cells.Borders.InsideLineWidth :=wdLineWidth025pt;

Но опять вылезает http://forum.pascalnet.ru/index.php?act=Attach&type=post&id=10221
видимо что то не так делаю

Сообщение отредактировано: marwell - 10.10.2012 20:36
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
IUnknown
сообщение 10.10.2012 20:46
Сообщение #7


a.k.a. volvo877
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской

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


const
wdBorderHorizontal = -5;
wdBorderVertical = -6;

var i : Integer;

// ...

for i := wdBorderHorizontal downto wdBorderVertical do
begin
Application.ActiveDocument.Tables.Item(1).Borders.Item(i).LineStyle := wdLineStyleSingle;
Application.ActiveDocument.Tables.Item(1).Borders.Item(i).LineWidth := wdLineWidth025pt;
end;
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
marwell
сообщение 10.10.2012 20:54
Сообщение #8


Бывалый
***

Группа: Пользователи
Сообщений: 198
Пол: Мужской

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


Цитата(IUnknown @ 10.10.2012 20:46) *

const
wdBorderHorizontal = -5;
wdBorderVertical = -6;

var i : Integer;

// ...

for i := wdBorderHorizontal downto wdBorderVertical do
begin
Application.ActiveDocument.Tables.Item(1).Borders.Item(i).LineStyle := wdLineStyleSingle;
Application.ActiveDocument.Tables.Item(1).Borders.Item(i).LineWidth := wdLineWidth025pt;
end;


вот оно, помогло) спасибо smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 18.04.2024 19:29
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"