Помощь - Поиск - Пользователи - Календарь
Полная версия: тип границ таблицы
Форум «Всё о Паскале» > Delphi, Assembler и другие языки. > Delphi
marwell
создаю таблицу, назначаю толщину линий и цвет, таблица создается, но все равно остается невидимой 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;
...
IUnknown
Во-первых, wdLineWidth025pt равен не 0, а 2. А во-вторых, цвет назначается не дельфийским clBlack, а Word-овским wdBlack = 1.
marwell
Цитата(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;
Нажмите для просмотра прикрепленного файла
IUnknown
Не верю:
marwell
Цитата(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
marwell
гм, границы теперь видны, но только границы таблицы... линии ячеек невидимы 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
видимо что то не так делаю
IUnknown
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;
marwell
Цитата(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
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.